Build modified streamline images

The official image from streamline does not currently work for the arm64
platform. As a temporary measure, the source code and docker build scripts
have been lifted from the official images and are used to build locally.

Some additional modifications are made to reduce overall image size, these
are documented in docker/README.md
This commit is contained in:
2024-03-10 16:17:50 -07:00
parent 2ffc3c408a
commit a424394109
13506 changed files with 1860172 additions and 6 deletions
+145
View File
@@ -0,0 +1,145 @@
<!DOCTYPE html>
<html lang="{{ app()->getLocale() }}">
<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="description" content="">
<meta name="author" content="">
<link rel="icon" type="image/png" sizes="16x16" href="{{ asset('uploads/streamline/color/streamline_icon-02.png') }}">
<title>{{ config('app.name') }}</title>
<!-- Bootstrap Core CSS -->
<link href="{{ asset('elite/bootstrap/dist/css/bootstrap.min.css') }}" rel="stylesheet">
<link href="{{ asset('elite/bower_components/bootstrap-extension/css/bootstrap-extension.css') }}" rel="stylesheet">
<!-- animation CSS -->
<link href="{{ asset('elite/css/animate.css') }}" rel="stylesheet">
<!-- Custom CSS -->
<link href="{{ asset('elite/css/style.css') }}" rel="stylesheet">
<!-- color CSS -->
<link href="{{ asset('elite/css/colors/megna.css') }}" id="theme" rel="stylesheet">
<!-- Streamline - custom -->
<link href="{{ asset('css/streamline-custom.css') }}" id="theme" rel="stylesheet">
</head>
<body>
<!-- Preloader -->
<div class="preloader">
<div class="cssload-speeding-wheel"></div>
</div>
<section id="wrapper" class="login-register" style="background:url(../../uploads/streamline_images/login_cover.png) center center/cover no-repeat!important;">
<div class="login-box login-sidebar">
<div class="white-box">
<!--Flash messages at the top -->
<div>@include('flash::message')</div>
<!--<div class="white-box">-->
@if ($message = Session::get('success'))
<div class="alert alert-success">
<p>{{ $message }}</p>
</div>
@endif
<form class="form-horizontal form-material" id="loginform" method="POST" action="{{ route('login') }}">
{{ csrf_field() }}
<a href="javascript:void(0)" class="text-center db">
<img src="{{ asset(isset($hospital_information->logo) ? $hospital_information->logo :'uploads/logo/logo.png') }}" height="120px" alt="Home" /><br/>
</a>
<div class="form-group m-t-40 {{ $errors->has('username') ? ' has-error' : '' }}">
<div class="col-xs-12">
<input class="form-control" type="text" name="username" required value="{{ old('username') }}" autofocus placeholder="{{ __('auth.username') }}">
@if ($errors->has('username'))
<span class="help-block">
<strong>{{ $errors->first('username') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group {{ $errors->has('password') ? ' has-error' : '' }}">
<div class="col-xs-12">
<input class="form-control" type="password" name="password" required="" placeholder="{{ __('auth.password') }}">
@if ($errors->has('password'))
<span class="help-block">
<strong>{{ $errors->first('password') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group">
<div class="col-md-12">
<div class="checkbox checkbox-primary pull-left p-t-0">
<input id="checkbox-signup" type="checkbox" name="remember" disabled="true" {{ old('remember') ? 'checked' : '' }}>
<label for="checkbox-signup"> {{ __('auth.remember_me') }} </label>
</div>
<a href="javascript:void(0)" id="to-recover" class="text-dark pull-right"><i class="fa fa-lock m-r-5"></i> {{ __('auth.reset_password') }}</a> </div>
</div>
<div class="form-group text-center m-t-20">
<div class="col-xs-12">
<button class="btn btn-info btn-lg btn-block text-uppercase waves-effect waves-light" type="submit">{{ __('auth.log_in') }}</button>
</div>
</div>
<div class="form-group m-b-0">
<div class="col-sm-12 text-center">
<p>{{ __('auth.visit') }} <a href="http://www.streamlinehealth.org" target="_blank" class="text-primary m-l-4"><b>www.streamlinehealth.org</b></a></p>
</div>
</div>
</form>
<form class="form-horizontal" id="recoverform" method="POST" action="{{ route('reset.check') }}">
{{ csrf_field() }}
<div class="form-group ">
<div class="col-xs-12">
<h3>{{ __('auth.reset_password') }}</h3>
<p class="text-muted">{{ __('auth.login_prompt') }}</p>
</div>
</div>
<div class="form-group ">
<div class="col-xs-12">
<div class="form-group">
{{ Form::label('security_question_id',__('auth.recorded_security_question')) }}
{{ Form::select('security_question_id',$security_questions,'',['class' => 'form-control compulsory']) }}
</div>
<div class="form-group">
{{ Form::label('security_answer',__('auth.security_answer')) }}
{{ Form::text('security_answer','',['class' => 'form-control compulsory','placeholder'=>'Security answer']) }}
</div>
<div class="form-group ">
{{ Form::label('pin',__('auth.your_pin')) }}
{{ Form::text('pin','',['class' => 'form-control compulsory','placeholder'=>'PIN']) }}
</div>
<div class="form-group ">
<button class="btn btn-success text-uppercase waves-effect waves-light float-right" type="submit">{{ __('auth.reset_password') }}</button>
</div>
</div>
</div>
<div class="form-group text-center m-t-20">
<div class="col-xs-12">
</div>
</div>
</form>
</div>
</div>
</section>
<!-- jQuery -->
<script src="{{ asset('elite/bower_components/jquery/dist/jquery.min.js') }}"></script>
<!-- Bootstrap Core JavaScript -->
<script src="{{ asset('elite/bootstrap/dist/js/tether.min.js') }}"></script>
<script src="{{ asset('elite/bootstrap/dist/js/bootstrap.min.js') }}"></script>
<script src="{{ asset('elite/bower_components/bootstrap-extension/js/bootstrap-extension.min.js') }}"></script>
<!-- Menu Plugin JavaScript -->
<script src="{{ asset('elite/bower_components/sidebar-nav/dist/sidebar-nav.min.js') }}"></script>
<!--slimscroll JavaScript -->
<script src="{{ asset('elite/js/jquery.slimscroll.js') }}"></script>
<!--Wave Effects -->
<script src="{{ asset('elite/js/waves.js') }}"></script>
<!-- Custom Theme JavaScript -->
<script src="{{ asset('elite/js/custom.min.js') }}"></script>
<!--Style Switcher -->
<script src="{{ asset('elite/bower_components/styleswitcher/jQuery.style.switcher.js') }}"></script>
</body>
</html>
@@ -0,0 +1,222 @@
@extends('layouts.main')
@push('styles')
<link href="{{ asset('elite/bower_components/bootstrap-datepicker/bootstrap-datepicker.min.css') }}" rel="stylesheet" type="text/css" />
<link href="{{ asset('elite/bower_components/custom-select/custom-select.css') }}" rel="stylesheet" type="text/css" />
<link href="{{ asset('js/password-strength-check/password-check.css') }}" rel="stylesheet" type="text/css" />
<!--<link href=" asset('elite/bower_components/multiselect/css/multi-select.css') " rel="stylesheet" type="text/css" />-->
<style type="text/css">
.pin{
-webkit-text-security: square;
-moz-text-security:square;
text-security:square;
}
</style>
@endpush
@section('content')
<div class="row bg-title">
<div class="col-lg-3 col-md-4 col-sm-4 col-xs-12">
<h4 class="page-title">{{ __('users.new_user') }}</h4>
</div>
<div class="col-lg-9 col-sm-8 col-md-8 col-xs-12">
<ol class="breadcrumb">
<li><a href="{{ route('home') }}">{{ __('users.dashboard') }}</a></li>
<li><a href="{{ route('users.index') }}">{{ __('users.users') }}</a></li>
<li class="active">{{ __('users.register') }}</li>
</ol>
</div>
<!-- /.col-lg-12 -->
</div>
@include('users.menu')
<!-- .row -->
<div class="row">
<div class="col-sm-12">
<!--Flash messages at the top -->
<div>@include('flash::message')</div>
@if (count($errors) > 0)
<div class="alert alert-danger">
{{ __('users.add_user_error') }}<br><br>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="white-box">
{{ Form::open(['route' => 'auth.store','id'=>'register','method'=>'POST','enctype'=>'multipart/form-data','data-toggle'=>'validator','autocomplete'=>'off']) }}
{{ csrf_field() }}
<div class="row">
<div class="col-md-4">
<div class="form-group">
{{ Form::label('first_name',__('users.first_name')) }}
{{ Form::text('first_name','',['class' => 'form-control compulsory']) }}
</div>
<div class="form-group">
{{ Form::label('last_name',__('users.last_name')) }}
{{ Form::text('last_name','',['class' => 'form-control compulsory']) }}
</div>
<div class="form-group">
{{ Form::label('phone',__('users.phone_number')) }}
{{ Form::text('phone','',['class' => 'form-control','data-mask'=>"0799 999 999"]) }}
<span class="font-13 text-muted">(07xx) 123-456</span>
</div>
<div class="form-group">
{{ Form::label('email',__('users.email_address')) }}
{{ Form::email('email','',['class' => 'form-control']) }}
</div>
<div class="form-group">
{{ Form::label('position_id',__('users.position')) }}
{{ Form::select('position_id',$positions,'',['class' => 'form-control compulsory']) }}
</div>
<div class="form-group">
{{ Form::label('photo',__('users.photo')) }}
{{ Form::file('photo',['class' => 'form-control']) }}
</div>
</div>
<div class="col-md-4">
<div class="form-group">
{{ Form::label("council_registration",__('users.any_council_registration')) }}<br>
{{ Form::radio('council_registration',1,'',['class'=>'council_radio', 'required']) }} &nbsp;{{ __('users.yes') }} &nbsp;&nbsp;
{{ Form::radio('council_registration',0,'',['class'=>'council_radio', 'required']) }} &nbsp;{{ __('users.no') }}
</div>
<div class="form-group council_hide" style="display: none;">
{{ Form::label('council_id',__('users.council_name')) }}
{{ Form::select('council_id',$councils,'',['class' => 'form-control']) }}
</div>
<div class="form-group council_hide" style="display: none;">
{{ Form::label('registration_number',__('users.registration_number')) }}
{{ Form::text('registration_number','',['class' => 'form-control']) }}
</div>
<div class="form-group council_hide" style="display: none;">
{{ Form::label('expiry_date',__('users.expiry_date')) }}
<div class="input-group">
{{ Form::text('expiry_date',null,['class' => 'form-control datepicker','readonly','id'=>'datepicker-autoclose']) }}
<span class="input-group-addon"><i class="icon-calender"></i></span>
</div>
</div>
<hr>
<div class="form-group">
{{ Form::label('blood_group_id',__('users.blood_group')) }}
{{ Form::select('blood_group_id',$blood_groups,'',['class' => 'form-control compulsory']) }}
</div>
<div class="form-group">
{{ Form::label("willing_to_donate",__('users.are_willing_to_donate')) }}<br>
{{ Form::radio('willing_to_donate',1, ['required']) }} &nbsp;{{ __('users.yes') }} &nbsp;&nbsp;
{{ Form::radio('willing_to_donate',0, ['required']) }} &nbsp;{{ __('users.no') }}
</div>
<div class="form-group">
{{ Form::label('last_donation_date',__('users.when_last_donation')) }}
<div class="input-group">
{{ Form::text('last_donation_date','',['class' => 'form-control datepicker','readonly','id'=>'datepicker-autoclose']) }}
<span class="input-group-addon"><i class="icon-calender"></i></span>
</div>
</div>
<div class="form-group">
{{ Form::label('roles[]',__('users.roles_on_streamline')) }}
{{ Form::select('roles[]',$roles,[],['class' => 'roles compulsory select2 m-b-10 select2-multiple', 'multiple','data-placeholder'=>'- select role -']) }}
</div>
</div>
<div class="col-md-4">
<div class="form-group">
{{ Form::label('username',__('users.username')) }}
{{ Form::text('username','',['class' => 'form-control compulsory']) }}
</div>
<div class="form-group">
{{ Form::label('password',__('users.password')) }}
{{ Form::password('password',['class' => 'form-control compulsory']) }}
<span id="result"></span>
</div>
<div class="form-group">
{{ Form::label('password_confirm',__('users.confirm_password')) }}
{{ Form::password('password_confirmation',['class' => 'form-control compulsory']) }}
</div>
<div class="form-group">
{{ Form::label('pin',__('users.secret_pin')) }}
{{ Form::number('pin',null,['class' => 'form-control compulsory pin','placeholder'=>'eg 12345','maxlength'=>'5','minlength'=>'5']) }}
</div>
<div class="form-group">
{{ Form::label('security_question_id',__('users.security_question')) }}
{{ Form::select('security_question_id',$security_questions,'',['class' => 'form-control']) }}
</div>
<div class="form-group">
{{ Form::label('security_answer',__('users.security_answer')) }}
{{ Form::text('security_answer','',['class' => 'form-control']) }}
</div>
</div>
<div class="col-md-8"><hr></div>
<div class="col-md-4">
{{ Form::button(__('users.submit'),['type'=>'submit','class'=>'btn btn-success waves-effect waves-light m-r-10']) }}
{{ Form::button(__('users.cancel'),['type'=>'reset','class'=>'btn btn-default waves-effect waves-light']) }}
</div>
</div>
{!! Form::close() !!}
</div>
</div>
</div>
<!-- /.row -->
@endsection
@push('scripts')
<script src="{{ asset('elite/js/mask.js') }}"></script>
<!-- Date Picker Plugin JavaScript -->
<script src="{{ asset('elite/bower_components/bootstrap-datepicker/bootstrap-datepicker.min.js') }}"></script>
<script type="text/javascript" src="{{ asset('elite/bower_components/custom-select/custom-select.min.js') }}"></script>
<!--<script type="text/javascript" src=" asset('elite/bower_components/multiselect/js/jquery.multi-select.js')"></script>-->
<script type="text/javascript">
$('document').ready(function () {
$('.datepicker').datepicker({
autoclose: true,
todayHighlight: true,
format: 'dd/mm/yyyy',
});
$('.council_radio').click(function (){
if ($(this).val() === '1'){
$('.council_hide').show()
}
else{
$('.council_hide').hide();
}
});
// For multiselect
$('.roles').select2();
// $('.roles').multiSelect();
// $('.roles').multiSelect({
// selectableOptgroup: true
// });
});</script>
<script type="text/javascript" src="{{ asset('js/password-strength-check/password-check.js') }}"></script>
@endpush