migrate to gtea from bistbucket

This commit is contained in:
2026-03-15 17:08:23 +07:00
commit 129ca2260c
3716 changed files with 566316 additions and 0 deletions

View File

@@ -0,0 +1,122 @@
@extends('install.layouts.master')
@section('title', _lang('install_requirements'))
@section('container')
<form action="{{ url('install/step-5') }}" method="GET" id="install-form">
@csrf
<div class="form-group">
<label for="username">{{ _lang('Envato Username') }}</label>
<input type="text" name="username" id="username" class="form-control" value="{{ old('username') }}"
placeholder="Envato username" required>
</div>
<div class="form-group">
<label for="purchase_key">{{ _lang('Purchase Key') }}</label>
<input type="text" name="purchase_key" id="purchase_key" class="form-control"
value="{{ old('purchase_key') }}" placeholder="Envato Item Purchase Code" required>
<span id="purchase_key-error" class="text-danger d-block mt-1"></span>
<div id="purchase_key-success" class="form-check mt-2 d-none">
<input class="form-check-input" type="checkbox" disabled checked>
<label class="form-check-label">{{ _lang('Purchase key is valid.') }}</label>
</div>
<button type="button" id="check-key" class="btn btn-sm btn-info mt-2">
{{ _lang('Check Purchase Key') }}
</button>
</div>
<div class="form-group text-right">
<button type="submit" id="next-button" class="btn btn-primary" style="display: none;" disabled>
{{ _lang('install_next') }}
</button>
</div>
</form>
@endsection
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
function resetValidationState() {
$('#purchase_key').removeClass('is-valid is-invalid').prop('readonly', false);
$('#purchase_key-success').addClass('d-none');
$('#purchase_key-error').text('');
$('#next-button').hide().prop('disabled', true);
$('#check-key').show().prop('disabled', false).text('Check Purchase Key');
}
function showError(message) {
$('#purchase_key-error').text(message).show();
$('#purchase_key').addClass('is-invalid').removeClass('is-valid');
$('#purchase_key-success').addClass('d-none');
$('#next-button').hide().prop('disabled', true);
}
function showSuccess() {
$('#purchase_key-error').text('');
$('#purchase_key').removeClass('is-invalid').addClass('is-valid').prop('readonly', true);
$('#purchase_key-success').removeClass('d-none');
$('#check-key').hide();
$('#next-button').show().prop('disabled', false);
}
$('#check-key').on('click', function() {
const purchase_key = $('#purchase_key').val().trim();
const username = $('#username').val().trim();
if (!purchase_key || purchase_key.length !== 36) {
showError('Purchase key must be exactly 36 characters.');
return;
}
if (!username) {
showError('Envato username is required.');
return;
}
$('#purchase_key-error').text('');
$('#check-key').text('Checking...').prop('disabled', true);
$.ajax({
url: "{{ route('install.validate') }}",
method: 'POST',
data: {
_token: '{{ csrf_token() }}',
purchase_key,
username
},
success: function(response) {
if (response.status === 'success') {
showSuccess();
} else {
showError(response.message || 'Invalid purchase key.');
}
},
error: function(xhr) {
const msg = xhr.responseJSON?.message || 'Server error occurred.';
showError(msg);
},
complete: function() {
$('#check-key').text('Check Purchase Key').prop('disabled', false);
}
});
});
// Re-check logic if user edits the key after validation
$('#purchase_key').on('input', function() {
resetValidationState();
});
// Prevent form submission if not validated
$('#install-form').on('submit', function(e) {
if ($('#next-button').prop('disabled')) {
e.preventDefault();
alert('Please validate your purchase key first.');
}
});
});
</script>

View File

@@ -0,0 +1,16 @@
@extends('install.layouts.master')
@section('title', _lang('install_complete'))
@section('container')
<p class="paragraph mb-5">
Installation completed successfully, you can login now with default login details.
<br>Email: <strong>saasadmin@gmail.com</strong>
<br>Password: <strong>123456</strong>
</p>
<div class="d-flex justify-content-center mb-4">
<a href="{{ url('/login') }}" class="btn btn-warning">
{{ _lang('Login Page') }}
</a>
</div>
@endsection

View File

@@ -0,0 +1,54 @@
@extends('install.layouts.master')
@section('title', _lang('install_database'))
@section('container')
<form action="{{ url('install/database') }}" method="POST" name="form" enctype="multipart/form-data">
@csrf
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="form-group">
<label for="software_name">{{ _lang('Software Name') }}</label>
<input type="text" name="software_name" id="software_name" class="form-control"
value="{{ old('software_name') }}" placeholder="Software Name" required>
</div>
<div class="form-group">
<label for="host">{{ _lang('install_host') }}</label>
<input type="text" name="host" id="host" class="form-control" value="127.0.0.1" required>
</div>
<div class="form-group">
<label for="username">{{ _lang('install_username') }}</label>
<input type="text" name="username" id="username" value="{{ old('username') }}" class="form-control"
required>
</div>
<div class="form-group">
<label for="password">{{ _lang('install_password') }}</label>
<input type="password" name="password" id="password" value="{{ old('password') }}" class="form-control">
</div>
<div class="form-group">
<label for="name">{{ _lang('install_name') }}</label>
<input type="text" name="name" id="name" class="form-control" value="{{ old('name') }}" required>
</div>
<div class="form-group">
<label for="port">{{ _lang('install_port') }}</label>
<input type="number" name="port" id="port" class="form-control" value="3306" required>
</div>
<div class="form-group">
<button type="submit" class="btn pull-right">{{ _lang('install_next') }}</button>
</div>
</form>
@endsection

View File

@@ -0,0 +1,67 @@
@extends('install.layouts.master')
@section('title', _lang('install_installation'))
<style>
.welcome-message {
background-color: #f9f9f9;
border: 1px solid #ddd;
padding: 20px;
margin-bottom: 20px;
border-radius: 5px;
}
.upgrade-highlights {
list-style-type: disc;
padding-left: 20px;
}
.upgrade-highlights li {
margin: 5px 0;
}
</style>
@section('container')
<div class="welcome-message">
<h1>{{ _lang('install_welcome') }}</h1>
<p class="paragraph">{{ _lang('install_msg') }}</p>
<p class="paragraph">
Install Upgrade Notice
<strong>Install New Features</strong>
Install Enjoy Improvements
</p>
<ul class="upgrade-highlights">
<li>
{{ _lang('Restaurant Management System') }}
</li>
<li>
{{ _lang('Staff Management System') }}
</li>
<li>
{{ _lang('Accounts & Financial Management') }}
</li>
<li>
{{ _lang('Authentication & Role-Based Permissions') }}
</li>
<li>
{{ _lang('Global Settings & Configurations') }}
</li>
<li>
{{ _lang('Notifications & SMS Module') }}
</li>
<li>
{{ _lang('HRM Management') }}
</li>
<li>
{{ _lang('Reports') }}
</li>
</ul>
</div>
<form action="{{ url('install/installation') }}" method="post" enctype="multipart/form-data">
@csrf
<div class="form-group">
<button type="submit" class="btn pull-right"> {{ _lang('install_install') }}</button>
</div>
</form>
@endsection

View File

@@ -0,0 +1,48 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>@yield('title')</title>
<!-- Tell the browser to be responsive to screen width -->
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<!-- Bootstrap 3.3.6 -->
<link rel="stylesheet" href="{{ asset('assets/bootstrap/css/bootstrap.min.css') }}">
<link rel="stylesheet" href="{{ asset('assets/css/style.css') }}">
<!-- Theme style -->
<link href="{{ asset('assets/plugins/font-awesome/css/font-awesome.min.css') }}" rel="stylesheet" type="text/css" />
<!-- jQuery 2.2.3 -->
<script src="{{ asset('assets/plugins/jQuery/jquery-2.2.3.min.js') }}"></script>
<!-- Bootstrap 3.3.6 -->
<script src="{{ asset('assets/bootstrap/js/bootstrap.min.js') }}"></script>
<script src="{{ asset('assets/plugins/jQueryUI/jquery-ui.min.js') }}" type="text/javascript"></script>
</head>
<body class="master">
<div class="box">
<div class="header">
<h1 class="header__title">@yield('title')</h1>
</div>
<div class="main">
<div class="row">
<div class="col-md-12">
@if (Session::has('flash_notification.message'))
<div class="alert alert-{{ Session::get('flash_notification.level') }}">
{{ Session::get('flash_notification.message') }}
</div>
@endif
@yield('container')
</div>
</div>
</div>
</div>
@if (Session::has('flash_notification.message'))
<script>
toastr.{{ Session::get('flash_notification.level') }}('{{ Session::get('flash_notification.message') }}',
'Response Status')
</script>
@endif
</body>
</html>

View File

@@ -0,0 +1,28 @@
@extends('install.layouts.master')
@section('title', _lang('install_permissions'))
@section('container')
<ul class="list-group">
@foreach ($permissions as $path => $isWritable)
<li class="list-group-item">
{{ $path }}
@if ($isWritable)
<span class="badge badge1"><i class="fa fa-check"></i></span>
@else
<span class="badge badge2"><i class="fa fa-times"></i></span>
@endif
</li>
@endforeach
</ul>
<div class="form-group">
@if ($next)
<a href="{{ url('install/step-4') }}" class="btn pull-right"> {{ _lang('install_next') }}</a>
@else
<div class="alert alert-danger">{{ _lang('install_check') }}</div>
<a class="btn pull-right" href="{{ Request::url() }}">
{{ _lang('refresh') }}
<i class="fa fa-refresh"></i></a>
@endif
</div>
@endsection

View File

@@ -0,0 +1,28 @@
@extends('install.layouts.master')
@section('title', _lang('install_requirements'))
@section('container')
<ul class="list-group">
@foreach ($requirements as $extention => $enabled)
<li class="list-group-item">
{{ $extention }}
@if ($enabled)
<span class="badge badge1"><i class="fa fa-check"></i></span>
@else
<span class="badge badge2"><i class="fa fa-times"></i></span>
@endif
</li>
@endforeach
</ul>
<div class="form-group">
@if ($next)
<a href="{{ url('install/permissions') }}" class="btn pull-right">{{ _lang('install_next') }}</a>
@else
<div class="alert alert-danger">{{ _lang('install_check') }}</div>
<a class="btn pull-right" href="{{ Request::url() }}">
{{ _lang('refresh') }}
<i class="fa fa-refresh"></i></a>
@endif
</div>
@endsection

View File

@@ -0,0 +1,35 @@
@extends('install.layouts.master')
@section('title', _lang('start_install'))
@section('container')
<div class="form-group">
<h1 class="header_one">Mighty School Software Installation
</h1>
<hr>
<p class="paragraph_justify">
Please proceed step by step with proper data according to instructions</p>
<p class="paragraph_justify">
Before starting the installation process please collect this
information. Without this information, you wont be able to complete the installation process.
</p>
<div class="info-box">
<ul class="info-box_ul">
<li>
<strong> <span class="text-danger">Required *</span> </strong>
</li>
<li>
<strong> <span class="text_color"> Host Name </span> </strong>
</li>
<li>
<strong> <span class="text_color"> Database Name </span> </strong>
</li>
<li>
<strong> <span class="text_color"> Database Username </span> </strong>
</li>
<li>
<strong> <span class="text_color"> Database Password </span> </strong>
</li>
</ul>
</div>
<a href="{{ url('install/requirements') }}" class="btn pull-right">{{ _lang('install_next') }}</a>
</div>
@endsection