安装引导 --
This commit is contained in:
parent
d42cd187dc
commit
17d0e28aec
|
|
@ -1,204 +1,229 @@
|
|||
@extends('installer::layouts.master')
|
||||
|
||||
@section('template_title')
|
||||
{{ trans('installer::installer_messages.environment.wizard.templateTitle') }}
|
||||
{{ trans('installer::installer_messages.environment.wizard.templateTitle') }}
|
||||
@endsection
|
||||
|
||||
@section('title')
|
||||
<i class="fa fa-magic fa-fw" aria-hidden="true"></i>
|
||||
{!! trans('installer::installer_messages.environment.wizard.title') !!}
|
||||
<i class="fa fa-magic fa-fw" aria-hidden="true"></i>
|
||||
{!! trans('installer::installer_messages.environment.wizard.title') !!}
|
||||
@endsection
|
||||
|
||||
@section('container')
|
||||
<form method="post" action="{{ route('installer.environment.save') }}" class="tabs-wrap">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}">
|
||||
@section('content')
|
||||
<form method="post" action="{{ route('installer.environment.save') }}" class="tabs-wrap">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}">
|
||||
|
||||
<div class="form-group {{ $errors->has('app_url') ? ' has-error ' : '' }}">
|
||||
<label for="app_url">
|
||||
{{ trans('installer::installer_messages.environment.wizard.form.app_url_label') }}
|
||||
</label>
|
||||
<input type="url" name="app_url" id="app_url" value="http://localhost" placeholder="{{ trans('installer::installer_messages.environment.wizard.form.app_url_placeholder') }}" />
|
||||
@if ($errors->has('app_url'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('app_url') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group {{ $errors->has('app_url') ? ' has-error ' : '' }}">
|
||||
<label for="app_url">
|
||||
{{ trans('installer::installer_messages.environment.wizard.form.app_url_label') }}
|
||||
</label>
|
||||
<input type="url" name="app_url" id="app_url" value="http://localhost"
|
||||
placeholder="{{ trans('installer::installer_messages.environment.wizard.form.app_url_placeholder') }}" />
|
||||
@if ($errors->has('app_url'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('app_url') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="form-group {{ $errors->has('database_connection') ? ' has-error ' : '' }}">
|
||||
<label for="database_connection">
|
||||
{{ trans('installer::installer_messages.environment.wizard.form.db_connection_label') }}
|
||||
</label>
|
||||
<select name="database_connection" id="database_connection">
|
||||
<option value="mysql" selected>{{ trans('installer::installer_messages.environment.wizard.form.db_connection_label_mysql') }}</option>
|
||||
<option value="sqlite">{{ trans('installer::installer_messages.environment.wizard.form.db_connection_label_sqlite') }}</option>
|
||||
<option value="pgsql">{{ trans('installer::installer_messages.environment.wizard.form.db_connection_label_pgsql') }}</option>
|
||||
<option value="sqlsrv">{{ trans('installer::installer_messages.environment.wizard.form.db_connection_label_sqlsrv') }}</option>
|
||||
</select>
|
||||
@if ($errors->has('database_connection'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('database_connection') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group {{ $errors->has('database_connection') ? ' has-error ' : '' }}">
|
||||
<label for="database_connection">
|
||||
{{ trans('installer::installer_messages.environment.wizard.form.db_connection_label') }}
|
||||
</label>
|
||||
<select name="database_connection" id="database_connection">
|
||||
<option value="mysql" selected>
|
||||
{{ trans('installer::installer_messages.environment.wizard.form.db_connection_label_mysql') }}</option>
|
||||
<option value="sqlite">
|
||||
{{ trans('installer::installer_messages.environment.wizard.form.db_connection_label_sqlite') }}</option>
|
||||
<option value="pgsql">
|
||||
{{ trans('installer::installer_messages.environment.wizard.form.db_connection_label_pgsql') }}</option>
|
||||
<option value="sqlsrv">
|
||||
{{ trans('installer::installer_messages.environment.wizard.form.db_connection_label_sqlsrv') }}</option>
|
||||
</select>
|
||||
@if ($errors->has('database_connection'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('database_connection') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="form-group {{ $errors->has('database_hostname') ? ' has-error ' : '' }}">
|
||||
<label for="database_hostname">
|
||||
{{ trans('installer::installer_messages.environment.wizard.form.db_host_label') }}
|
||||
</label>
|
||||
<input type="text" name="database_hostname" id="database_hostname" value="127.0.0.1" placeholder="{{ trans('installer::installer_messages.environment.wizard.form.db_host_placeholder') }}" />
|
||||
@if ($errors->has('database_hostname'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('database_hostname') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group {{ $errors->has('database_hostname') ? ' has-error ' : '' }}">
|
||||
<label for="database_hostname">
|
||||
{{ trans('installer::installer_messages.environment.wizard.form.db_host_label') }}
|
||||
</label>
|
||||
<input type="text" name="database_hostname" id="database_hostname" value="127.0.0.1"
|
||||
placeholder="{{ trans('installer::installer_messages.environment.wizard.form.db_host_placeholder') }}" />
|
||||
@if ($errors->has('database_hostname'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('database_hostname') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="form-group {{ $errors->has('database_port') ? ' has-error ' : '' }}">
|
||||
<label for="database_port">
|
||||
{{ trans('installer::installer_messages.environment.wizard.form.db_port_label') }}
|
||||
</label>
|
||||
<input type="number" name="database_port" id="database_port" value="3306" placeholder="{{ trans('installer::installer_messages.environment.wizard.form.db_port_placeholder') }}" />
|
||||
@if ($errors->has('database_port'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('database_port') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group {{ $errors->has('database_port') ? ' has-error ' : '' }}">
|
||||
<label for="database_port">
|
||||
{{ trans('installer::installer_messages.environment.wizard.form.db_port_label') }}
|
||||
</label>
|
||||
<input type="number" name="database_port" id="database_port" value="3306"
|
||||
placeholder="{{ trans('installer::installer_messages.environment.wizard.form.db_port_placeholder') }}" />
|
||||
@if ($errors->has('database_port'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('database_port') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="form-group {{ $errors->has('database_name') ? ' has-error ' : '' }}">
|
||||
<label for="database_name">
|
||||
{{ trans('installer::installer_messages.environment.wizard.form.db_name_label') }}
|
||||
</label>
|
||||
<input type="text" name="database_name" id="database_name" value="" placeholder="{{ trans('installer::installer_messages.environment.wizard.form.db_name_placeholder') }}" />
|
||||
@if ($errors->has('database_name'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('database_name') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group {{ $errors->has('database_name') ? ' has-error ' : '' }}">
|
||||
<label for="database_name">
|
||||
{{ trans('installer::installer_messages.environment.wizard.form.db_name_label') }}
|
||||
</label>
|
||||
<input type="text" name="database_name" id="database_name" value=""
|
||||
placeholder="{{ trans('installer::installer_messages.environment.wizard.form.db_name_placeholder') }}" />
|
||||
@if ($errors->has('database_name'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('database_name') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="form-group {{ $errors->has('database_username') ? ' has-error ' : '' }}">
|
||||
<label for="database_username">
|
||||
{{ trans('installer::installer_messages.environment.wizard.form.db_username_label') }}
|
||||
</label>
|
||||
<input type="text" name="database_username" id="database_username" value="" placeholder="{{ trans('installer::installer_messages.environment.wizard.form.db_username_placeholder') }}" />
|
||||
@if ($errors->has('database_username'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('database_username') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group {{ $errors->has('database_username') ? ' has-error ' : '' }}">
|
||||
<label for="database_username">
|
||||
{{ trans('installer::installer_messages.environment.wizard.form.db_username_label') }}
|
||||
</label>
|
||||
<input type="text" name="database_username" id="database_username" value=""
|
||||
placeholder="{{ trans('installer::installer_messages.environment.wizard.form.db_username_placeholder') }}" />
|
||||
@if ($errors->has('database_username'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('database_username') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="form-group {{ $errors->has('database_password') ? ' has-error ' : '' }}">
|
||||
<label for="database_password">
|
||||
{{ trans('installer::installer_messages.environment.wizard.form.db_password_label') }}
|
||||
</label>
|
||||
<input type="password" name="database_password" id="database_password" value="" placeholder="{{ trans('installer::installer_messages.environment.wizard.form.db_password_placeholder') }}" />
|
||||
@if ($errors->has('database_password'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('database_password') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group {{ $errors->has('database_password') ? ' has-error ' : '' }}">
|
||||
<label for="database_password">
|
||||
{{ trans('installer::installer_messages.environment.wizard.form.db_password_label') }}
|
||||
</label>
|
||||
<input type="password" name="database_password" id="database_password" value=""
|
||||
placeholder="{{ trans('installer::installer_messages.environment.wizard.form.db_password_placeholder') }}" />
|
||||
@if ($errors->has('database_password'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('database_password') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="form-group {{ $errors->has('mail_driver') ? ' has-error ' : '' }}">
|
||||
<label for="mail_driver">
|
||||
{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_driver_label') }}
|
||||
<sup>
|
||||
<a href="https://laravel.com/docs/5.4/mail" target="_blank" title="{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.more_info') }}">
|
||||
<i class="fa fa-info-circle fa-fw" aria-hidden="true"></i>
|
||||
<span class="sr-only">{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.more_info') }}</span>
|
||||
</a>
|
||||
</sup>
|
||||
</label>
|
||||
<input type="text" name="mail_driver" id="mail_driver" value="smtp" placeholder="{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_driver_placeholder') }}" />
|
||||
@if ($errors->has('mail_driver'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('mail_driver') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group {{ $errors->has('mail_host') ? ' has-error ' : '' }}">
|
||||
<label for="mail_host">{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_host_label') }}</label>
|
||||
<input type="text" name="mail_host" id="mail_host" value="smtp.mailtrap.io" placeholder="{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_host_placeholder') }}" />
|
||||
@if ($errors->has('mail_host'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('mail_host') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group {{ $errors->has('mail_port') ? ' has-error ' : '' }}">
|
||||
<label for="mail_port">{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_port_label') }}</label>
|
||||
<input type="number" name="mail_port" id="mail_port" value="2525" placeholder="{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_port_placeholder') }}" />
|
||||
@if ($errors->has('mail_port'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('mail_port') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group {{ $errors->has('mail_username') ? ' has-error ' : '' }}">
|
||||
<label for="mail_username">{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_username_label') }}</label>
|
||||
<input type="text" name="mail_username" id="mail_username" value="null" placeholder="{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_username_placeholder') }}" />
|
||||
@if ($errors->has('mail_username'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('mail_username') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group {{ $errors->has('mail_password') ? ' has-error ' : '' }}">
|
||||
<label for="mail_password">{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_password_label') }}</label>
|
||||
<input type="text" name="mail_password" id="mail_password" value="null" placeholder="{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_password_placeholder') }}" />
|
||||
@if ($errors->has('mail_password'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('mail_password') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group {{ $errors->has('mail_encryption') ? ' has-error ' : '' }}">
|
||||
<label for="mail_encryption">{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_encryption_label') }}</label>
|
||||
<input type="text" name="mail_encryption" id="mail_encryption" value="null" placeholder="{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_encryption_placeholder') }}" />
|
||||
@if ($errors->has('mail_encryption'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('mail_encryption') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
<button class="button" type="submit">
|
||||
{{ trans('installer::installer_messages.environment.wizard.form.buttons.install') }}
|
||||
<i class="fa fa-angle-right fa-fw" aria-hidden="true"></i>
|
||||
</button>
|
||||
</form>
|
||||
<div class="form-group {{ $errors->has('mail_driver') ? ' has-error ' : '' }}">
|
||||
<label for="mail_driver">
|
||||
{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_driver_label') }}
|
||||
<sup>
|
||||
<a href="https://laravel.com/docs/5.4/mail" target="_blank"
|
||||
title="{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.more_info') }}">
|
||||
<i class="fa fa-info-circle fa-fw" aria-hidden="true"></i>
|
||||
<span
|
||||
class="sr-only">{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.more_info') }}</span>
|
||||
</a>
|
||||
</sup>
|
||||
</label>
|
||||
<input type="text" name="mail_driver" id="mail_driver" value="smtp"
|
||||
placeholder="{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_driver_placeholder') }}" />
|
||||
@if ($errors->has('mail_driver'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('mail_driver') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group {{ $errors->has('mail_host') ? ' has-error ' : '' }}">
|
||||
<label
|
||||
for="mail_host">{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_host_label') }}</label>
|
||||
<input type="text" name="mail_host" id="mail_host" value="smtp.mailtrap.io"
|
||||
placeholder="{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_host_placeholder') }}" />
|
||||
@if ($errors->has('mail_host'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('mail_host') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group {{ $errors->has('mail_port') ? ' has-error ' : '' }}">
|
||||
<label
|
||||
for="mail_port">{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_port_label') }}</label>
|
||||
<input type="number" name="mail_port" id="mail_port" value="2525"
|
||||
placeholder="{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_port_placeholder') }}" />
|
||||
@if ($errors->has('mail_port'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('mail_port') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group {{ $errors->has('mail_username') ? ' has-error ' : '' }}">
|
||||
<label
|
||||
for="mail_username">{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_username_label') }}</label>
|
||||
<input type="text" name="mail_username" id="mail_username" value="null"
|
||||
placeholder="{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_username_placeholder') }}" />
|
||||
@if ($errors->has('mail_username'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('mail_username') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group {{ $errors->has('mail_password') ? ' has-error ' : '' }}">
|
||||
<label
|
||||
for="mail_password">{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_password_label') }}</label>
|
||||
<input type="text" name="mail_password" id="mail_password" value="null"
|
||||
placeholder="{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_password_placeholder') }}" />
|
||||
@if ($errors->has('mail_password'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('mail_password') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group {{ $errors->has('mail_encryption') ? ' has-error ' : '' }}">
|
||||
<label
|
||||
for="mail_encryption">{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_encryption_label') }}</label>
|
||||
<input type="text" name="mail_encryption" id="mail_encryption" value="null"
|
||||
placeholder="{{ trans('installer::installer_messages.environment.wizard.form.app_tabs.mail_encryption_placeholder') }}" />
|
||||
@if ($errors->has('mail_encryption'))
|
||||
<span class="error-block">
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ $errors->first('mail_encryption') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
<button class="button" type="submit">
|
||||
{{ trans('installer::installer_messages.environment.wizard.form.buttons.install') }}
|
||||
<i class="fa fa-angle-right fa-fw" aria-hidden="true"></i>
|
||||
</button>
|
||||
</form>
|
||||
@endsection
|
||||
|
||||
@section('scripts')
|
||||
<script type="text/javascript">
|
||||
function checkEnvironment(val) {
|
||||
var element=document.getElementById('environment_text_input');
|
||||
if(val=='other') {
|
||||
element.style.display='block';
|
||||
} else {
|
||||
element.style.display='none';
|
||||
}
|
||||
}
|
||||
function showDatabaseSettings() {
|
||||
document.getElementById('tab2').checked = true;
|
||||
}
|
||||
function showApplicationSettings() {
|
||||
document.getElementById('tab3').checked = true;
|
||||
}
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
function checkEnvironment(val) {
|
||||
var element = document.getElementById('environment_text_input');
|
||||
if (val == 'other') {
|
||||
element.style.display = 'block';
|
||||
} else {
|
||||
element.style.display = 'none';
|
||||
}
|
||||
}
|
||||
|
||||
function showDatabaseSettings() {
|
||||
document.getElementById('tab2').checked = true;
|
||||
}
|
||||
|
||||
function showApplicationSettings() {
|
||||
document.getElementById('tab3').checked = true;
|
||||
}
|
||||
</script>
|
||||
@endsection
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
{{ trans('installer::installer_messages.final.title') }}
|
||||
@endsection
|
||||
|
||||
@section('container')
|
||||
@section('content')
|
||||
|
||||
@if(session('message')['dbOutputLog'])
|
||||
<p><strong><small>{{ trans('installer::installer_messages.final.migration') }}</small></strong></p>
|
||||
|
|
|
|||
|
|
@ -1,67 +1,73 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||
<title>@if (trim($__env->yieldContent('template_title')))@yield('template_title') | @endif {{ trans('installer::installer_messages.title') }}</title>
|
||||
<link rel="icon" type="image/png" href="{{ asset('installer/img/favicon/favicon-16x16.png') }}" sizes="16x16"/>
|
||||
<link rel="icon" type="image/png" href="{{ asset('installer/img/favicon/favicon-32x32.png') }}" sizes="32x32"/>
|
||||
<link rel="icon" type="image/png" href="{{ asset('installer/img/favicon/favicon-96x96.png') }}" sizes="96x96"/>
|
||||
<link href="{{ asset('installer/css/style.min.css') }}" rel="stylesheet"/>
|
||||
@yield('style')
|
||||
<script>
|
||||
window.Laravel = <?php echo json_encode([
|
||||
'csrfToken' => csrf_token(),
|
||||
]); ?>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="master">
|
||||
<div class="box">
|
||||
<div class="header">
|
||||
<h1 class="header__title">@yield('title')</h1>
|
||||
</div>
|
||||
<div class="main">
|
||||
@if (session('message'))
|
||||
<p class="alert text-center">
|
||||
<strong>
|
||||
@if(is_array(session('message')))
|
||||
{{ session('message')['message'] }}
|
||||
@else
|
||||
{{ session('message') }}
|
||||
@endif
|
||||
</strong>
|
||||
</p>
|
||||
@endif
|
||||
@if(session()->has('errors'))
|
||||
<div class="alert alert-danger" id="error_alert">
|
||||
<button type="button" class="close" id="close_alert" data-dismiss="alert" aria-hidden="true">
|
||||
<i class="fa fa-close" aria-hidden="true"></i>
|
||||
</button>
|
||||
<h4>
|
||||
<i class="fa fa-fw fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ trans('installer::installer_messages.forms.errorTitle') }}
|
||||
</h4>
|
||||
<ul>
|
||||
@foreach($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
@yield('container')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@yield('scripts')
|
||||
<script type="text/javascript">
|
||||
var x = document.getElementById('error_alert');
|
||||
var y = document.getElementById('close_alert');
|
||||
y.onclick = function() {
|
||||
x.style.display = "none";
|
||||
};
|
||||
</script>
|
||||
</body>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||
<title>
|
||||
@if (trim($__env->yieldContent('template_title')))
|
||||
@yield('template_title') |
|
||||
@endif {{ trans('installer::installer_messages.title') }}
|
||||
</title>
|
||||
<link rel="stylesheet" type="text/css" href="{{ asset('/build/beike/shop/default/css/bootstrap.css') }}">
|
||||
<script src="{{ asset('vendor/jquery/jquery-3.6.0.min.js') }}"></script>
|
||||
<script src="{{ asset('vendor/layer/3.5.1/layer.js') }}"></script>
|
||||
<link rel="shortcut icon" href="{{ asset('/image/favicon.png') }}">
|
||||
<script src="{{ asset('vendor/bootstrap/5.1.3/js/bootstrap.min.js') }}"></script>
|
||||
<link rel="stylesheet" type="text/css" href="{{ asset('/build/beike/installer/app.css') }}">
|
||||
@yield('style')
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<aside class="aside-wrap">
|
||||
<div class="logo mb-5"><img src="{{ asset('/image/logo.png') }}" class="img-fluid"></div>
|
||||
<div class="steps-wrap">
|
||||
<ul>
|
||||
<li class="success">
|
||||
<div class="left"><span class="index"><i class="bi bi-check-lg"></i></span>已经成功的步骤</div>
|
||||
</li>
|
||||
<li class="ing">
|
||||
<div class="left">
|
||||
<span class="index">2</span>正在进行的步骤
|
||||
</div>
|
||||
<span class="right"><i class="bi bi-arrow-right-short"></i></span>
|
||||
</li>
|
||||
<li><div class="left"><span class="index">3</span>等待执行的步骤</div></li>
|
||||
<li><div class="left"><span class="index">4</span>等待执行的步骤</div></li>
|
||||
<li><div class="left"><span class="index">5</span>等待执行的步骤</div></li>
|
||||
</ul>
|
||||
</div>
|
||||
{{-- <div class="container d-flex justify-content-between align-items-center">
|
||||
</div> --}}
|
||||
</aside>
|
||||
|
||||
<div class="content">
|
||||
@if (session('message'))
|
||||
<p class="alert text-center">
|
||||
<strong>
|
||||
@if (is_array(session('message')))
|
||||
{{ session('message')['message'] }}
|
||||
@else
|
||||
{{ session('message') }}
|
||||
@endif
|
||||
</strong>
|
||||
</p>
|
||||
@endif
|
||||
@if (session()->has('errors'))
|
||||
<div class="alert alert-danger" id="error_alert">
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@yield('content')
|
||||
</div>
|
||||
@yield('scripts')
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
{{ trans('installer::installer_messages.permissions.title') }}
|
||||
@endsection
|
||||
|
||||
@section('container')
|
||||
@section('content')
|
||||
|
||||
<ul class="list">
|
||||
@foreach($permissions['permissions'] as $permission)
|
||||
|
|
|
|||
|
|
@ -1,50 +1,52 @@
|
|||
@extends('installer::layouts.master')
|
||||
|
||||
@section('template_title')
|
||||
{{ trans('installer::installer_messages.requirements.templateTitle') }}
|
||||
{{ trans('installer::installer_messages.requirements.templateTitle') }}
|
||||
@endsection
|
||||
|
||||
@section('title')
|
||||
<i class="fa fa-list-ul fa-fw" aria-hidden="true"></i>
|
||||
{{ trans('installer::installer_messages.requirements.title') }}
|
||||
<i class="fa fa-list-ul fa-fw" aria-hidden="true"></i>
|
||||
{{ trans('installer::installer_messages.requirements.title') }}
|
||||
@endsection
|
||||
|
||||
@section('container')
|
||||
|
||||
@foreach($requirements['requirements'] as $type => $requirement)
|
||||
<ul class="list">
|
||||
<li class="list__item list__title {{ $phpSupportInfo['supported'] ? 'success' : 'error' }}">
|
||||
<strong>{{ ucfirst($type) }}</strong>
|
||||
@if($type == 'php')
|
||||
<strong>
|
||||
<small>
|
||||
(version {{ $phpSupportInfo['minimum'] }} required)
|
||||
</small>
|
||||
</strong>
|
||||
<span class="float-right">
|
||||
<strong>
|
||||
{{ $phpSupportInfo['current'] }}
|
||||
</strong>
|
||||
<i class="fa fa-fw fa-{{ $phpSupportInfo['supported'] ? 'check-circle-o' : 'exclamation-circle' }} row-icon" aria-hidden="true"></i>
|
||||
</span>
|
||||
@endif
|
||||
</li>
|
||||
@foreach($requirements['requirements'][$type] as $extention => $enabled)
|
||||
<li class="list__item {{ $enabled ? 'success' : 'error' }}">
|
||||
{{ $extention }}
|
||||
<i class="fa fa-fw fa-{{ $enabled ? 'check-circle-o' : 'exclamation-circle' }} row-icon" aria-hidden="true"></i>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@section('content')
|
||||
<div class="container">
|
||||
@foreach ($requirements['requirements'] as $type => $requirement)
|
||||
<ul class="list">
|
||||
<li class="list__item list__title {{ $phpSupportInfo['supported'] ? 'success' : 'error' }}">
|
||||
<strong>{{ ucfirst($type) }}</strong>
|
||||
@if ($type == 'php')
|
||||
<strong>
|
||||
<small>
|
||||
(version {{ $phpSupportInfo['minimum'] }} required)
|
||||
</small>
|
||||
</strong>
|
||||
<span class="float-right">
|
||||
<strong>
|
||||
{{ $phpSupportInfo['current'] }}
|
||||
</strong>
|
||||
<i class="fa fa-fw fa-{{ $phpSupportInfo['supported'] ? 'check-circle-o' : 'exclamation-circle' }} row-icon"
|
||||
aria-hidden="true"></i>
|
||||
</span>
|
||||
@endif
|
||||
</li>
|
||||
@foreach ($requirements['requirements'][$type] as $extention => $enabled)
|
||||
<li class="list__item {{ $enabled ? 'success' : 'error' }}">
|
||||
{{ $extention }}
|
||||
<i class="fa fa-fw fa-{{ $enabled ? 'check-circle-o' : 'exclamation-circle' }} row-icon" aria-hidden="true"></i>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endforeach
|
||||
|
||||
@if ( ! isset($requirements['errors']) && $phpSupportInfo['supported'] )
|
||||
<div class="buttons">
|
||||
<a class="button" href="{{ route('installer.permissions') }}">
|
||||
{{ trans('installer::installer_messages.requirements.next') }}
|
||||
<i class="fa fa-angle-right fa-fw" aria-hidden="true"></i>
|
||||
</a>
|
||||
</div>
|
||||
@if (!isset($requirements['errors']) && $phpSupportInfo['supported'])
|
||||
<div class="buttons">
|
||||
<a class="button" href="{{ route('installer.permissions') }}">
|
||||
{{ trans('installer::installer_messages.requirements.next') }}
|
||||
<i class="fa fa-angle-right fa-fw" aria-hidden="true"></i>
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
{{ trans('installer::installer_messages.welcome.title') }}
|
||||
@endsection
|
||||
|
||||
@section('container')
|
||||
@section('content')
|
||||
<p class="text-center">
|
||||
{{ trans('installer::installer_messages.welcome.message') }}
|
||||
</p>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,74 @@
|
|||
@charset "UTF-8";
|
||||
|
||||
.aside-wrap {
|
||||
.logo {
|
||||
img {
|
||||
max-width: 180px;
|
||||
}
|
||||
}
|
||||
|
||||
.steps-wrap {
|
||||
ul {
|
||||
padding-left: 0;
|
||||
list-style: none;
|
||||
|
||||
li {
|
||||
margin-bottom: 30px;
|
||||
font-size: 16px;
|
||||
color: #333;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
.left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.right {
|
||||
i {
|
||||
font-size: 24px;
|
||||
line-height: 1;
|
||||
}
|
||||
}
|
||||
|
||||
span.index {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border: 2px solid #ddd;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-right: 18px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
&.success {
|
||||
color: #999;
|
||||
|
||||
span.index {
|
||||
background-color: #5dca86;
|
||||
border-color: #5dca86;
|
||||
color: #fff;
|
||||
i {
|
||||
font-size: 24px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.ing {
|
||||
color: $primary;
|
||||
|
||||
span.index {
|
||||
border-color: $primary;
|
||||
color: $primary;
|
||||
i {
|
||||
font-size: 24px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
@charset "UTF-8";
|
||||
|
||||
$primary: #fd560f;
|
||||
|
||||
body {
|
||||
background-color: #f6f7f8;
|
||||
display: flex;
|
||||
height: 100vh;
|
||||
// flex-direction: column;
|
||||
|
||||
> .aside-wrap {
|
||||
width: 30%;
|
||||
background-color: #fff;
|
||||
padding: 40px 20px 40px 40px;
|
||||
// flex: 1;
|
||||
}
|
||||
|
||||
> .content {
|
||||
width: 70%;
|
||||
padding: 40px;
|
||||
// flex: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@import "steps";
|
||||
|
|
@ -2536,6 +2536,19 @@ axios.defaults.baseURL = base;
|
|||
}
|
||||
});
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./beike/installer/assets/scss/app.scss":
|
||||
/*!**********************************************!*\
|
||||
!*** ./beike/installer/assets/scss/app.scss ***!
|
||||
\**********************************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
// extracted by mini-css-extract-plugin
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./resources/beike/admin/css/design/app.scss":
|
||||
|
|
@ -2937,7 +2950,8 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
|
|||
/******/ "build/beike/admin/css/filemanager": 0,
|
||||
/******/ "build/beike/admin/css/app": 0,
|
||||
/******/ "build/beike/admin/css/bootstrap": 0,
|
||||
/******/ "build/beike/admin/css/design": 0
|
||||
/******/ "build/beike/admin/css/design": 0,
|
||||
/******/ "build/beike/installer/app": 0
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // no chunk on demand loading
|
||||
|
|
@ -2987,13 +3001,14 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
|
|||
/******/ // startup
|
||||
/******/ // Load entry module and return exports
|
||||
/******/ // This entry module depends on other loaded chunks and execution need to be delayed
|
||||
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/admin/css/design"], () => (__webpack_require__("./resources/beike/admin/js/app.js")))
|
||||
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/admin/css/design"], () => (__webpack_require__("./resources/beike/admin/css/bootstrap/bootstrap.scss")))
|
||||
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/admin/css/design"], () => (__webpack_require__("./resources/beike/admin/css/app.scss")))
|
||||
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/admin/css/design"], () => (__webpack_require__("./resources/beike/admin/css/filemanager/app.scss")))
|
||||
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/admin/css/design"], () => (__webpack_require__("./resources/beike/shop/default/css/bootstrap/bootstrap.scss")))
|
||||
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/admin/css/design"], () => (__webpack_require__("./resources/beike/shop/default/css/app.scss")))
|
||||
/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/admin/css/design"], () => (__webpack_require__("./resources/beike/admin/css/design/app.scss")))
|
||||
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/admin/css/design","build/beike/installer/app"], () => (__webpack_require__("./resources/beike/admin/js/app.js")))
|
||||
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/admin/css/design","build/beike/installer/app"], () => (__webpack_require__("./resources/beike/admin/css/bootstrap/bootstrap.scss")))
|
||||
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/admin/css/design","build/beike/installer/app"], () => (__webpack_require__("./resources/beike/admin/css/app.scss")))
|
||||
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/admin/css/design","build/beike/installer/app"], () => (__webpack_require__("./resources/beike/admin/css/filemanager/app.scss")))
|
||||
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/admin/css/design","build/beike/installer/app"], () => (__webpack_require__("./resources/beike/shop/default/css/bootstrap/bootstrap.scss")))
|
||||
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/admin/css/design","build/beike/installer/app"], () => (__webpack_require__("./resources/beike/shop/default/css/app.scss")))
|
||||
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/admin/css/design","build/beike/installer/app"], () => (__webpack_require__("./beike/installer/assets/scss/app.scss")))
|
||||
/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/admin/css/design","build/beike/installer/app"], () => (__webpack_require__("./resources/beike/admin/css/design/app.scss")))
|
||||
/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__);
|
||||
/******/
|
||||
/******/ })()
|
||||
|
|
|
|||
|
|
@ -0,0 +1,70 @@
|
|||
body {
|
||||
background-color: #f6f7f8;
|
||||
display: flex;
|
||||
height: 100vh;
|
||||
}
|
||||
body > .aside-wrap {
|
||||
width: 30%;
|
||||
background-color: #fff;
|
||||
padding: 40px 20px 40px 40px;
|
||||
}
|
||||
body > .content {
|
||||
width: 70%;
|
||||
padding: 40px;
|
||||
}
|
||||
|
||||
.aside-wrap .logo img {
|
||||
max-width: 180px;
|
||||
}
|
||||
.aside-wrap .steps-wrap ul {
|
||||
padding-left: 0;
|
||||
list-style: none;
|
||||
}
|
||||
.aside-wrap .steps-wrap ul li {
|
||||
margin-bottom: 30px;
|
||||
font-size: 16px;
|
||||
color: #333;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.aside-wrap .steps-wrap ul li .left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.aside-wrap .steps-wrap ul li .right i {
|
||||
font-size: 24px;
|
||||
line-height: 1;
|
||||
}
|
||||
.aside-wrap .steps-wrap ul li span.index {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border: 2px solid #ddd;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-right: 18px;
|
||||
color: #666;
|
||||
}
|
||||
.aside-wrap .steps-wrap ul li.success {
|
||||
color: #999;
|
||||
}
|
||||
.aside-wrap .steps-wrap ul li.success span.index {
|
||||
background-color: #5dca86;
|
||||
border-color: #5dca86;
|
||||
color: #fff;
|
||||
}
|
||||
.aside-wrap .steps-wrap ul li.success span.index i {
|
||||
font-size: 24px;
|
||||
}
|
||||
.aside-wrap .steps-wrap ul li.ing {
|
||||
color: #fd560f;
|
||||
}
|
||||
.aside-wrap .steps-wrap ul li.ing span.index {
|
||||
border-color: #fd560f;
|
||||
color: #fd560f;
|
||||
}
|
||||
.aside-wrap .steps-wrap ul li.ing span.index i {
|
||||
font-size: 24px;
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.3 KiB |
|
|
@ -31,6 +31,10 @@ mix.sass('resources/beike/shop/default/css/bootstrap/bootstrap.scss', 'public/bu
|
|||
mix.sass('resources/beike/shop/default/css/app.scss', 'public/build/beike/shop/default/css/app.css');
|
||||
mix.js('resources/beike/shop/default/js/app.js', 'public/build/beike/shop/default/js/app.js');
|
||||
|
||||
// 安装引导
|
||||
mix.sass('beike/installer/assets/scss/app.scss', 'public/build/beike/installer/app.css');
|
||||
|
||||
|
||||
// design
|
||||
mix.sass('resources/beike/admin/css/design/app.scss', 'public/build/beike/admin/css/design.css');
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue