File: /var/www/ivs.kaunokolegija.lt/laravel/resources/views/admin/scienceActivities/create.blade.php
@extends('layouts.admin')
@section('content')
<div class="card">
<div class="card-header">
{{ trans('global.create') }}
</div>
<div class="card-body">
<form method="POST" action="{{ route("admin.science-activities.store") }}" enctype="multipart/form-data">
@csrf
<div class="form-group">
<label class="required" for="name">{{ trans('cruds.scienceActivity.fields.name') }}</label>
<input class="form-control {{ $errors->has('name') ? 'is-invalid' : '' }}" type="text" name="name" id="name" value="{{ old('name', '') }}" required>
@if($errors->has('name'))
<span class="text-danger">{{ $errors->first('name') }}</span>
@endif
<span class="help-block">{{ trans('cruds.scienceActivity.fields.name_helper') }}</span>
</div>
<div class="form-group">
<label class="required" for="contractno">{{ trans('cruds.scienceActivity.fields.contractno') }}</label>
<input class="form-control {{ $errors->has('contractno') ? 'is-invalid' : '' }}" type="text" name="contractno" id="contractno" value="{{ old('contractno', '') }}" required>
@if($errors->has('contractno'))
<span class="text-danger">{{ $errors->first('contractno') }}</span>
@endif
<span class="help-block">{{ trans('cruds.scienceActivity.fields.contractno_helper') }}</span>
</div>
<div class="form-group">
<label class="required" for="contactscientists">{{ trans('cruds.scienceActivity.fields.contactscientists') }}</label>
<div style="padding-bottom: 4px">
<span class="btn btn-info btn-xs select-all" style="border-radius: 0">{{ trans('global.select_all') }}</span>
<span class="btn btn-info btn-xs deselect-all" style="border-radius: 0">{{ trans('global.deselect_all') }}</span>
</div>
<select class="form-control select2 {{ $errors->has('contactscientists') ? 'is-invalid' : '' }}" name="contactscientists[]" id="contactscientists" multiple required>
@foreach($contactscientists as $id => $contactscientist)
<option value="{{ $id }}" {{ in_array($id, old('contactscientists', [])) ? 'selected' : '' }}>{{ $contactscientist }}</option>
@endforeach
</select>
@if($errors->has('contactscientists'))
<span class="text-danger">{{ $errors->first('contactscientists') }}</span>
@endif
<span class="help-block">{{ trans('cruds.scienceActivity.fields.contactscientists_helper') }}</span>
</div>
<div class="form-group">
<label for="contactstudents">{{ trans('cruds.scienceActivity.fields.contactstudent') }}</label>
<div style="padding-bottom: 4px">
<span class="btn btn-info btn-xs select-all" style="border-radius: 0">{{ trans('global.select_all') }}</span>
<span class="btn btn-info btn-xs deselect-all" style="border-radius: 0">{{ trans('global.deselect_all') }}</span>
</div>
<select class="form-control select2 {{ $errors->has('contactstudents') ? 'is-invalid' : '' }}" name="contactstudents[]" id="contactstudents" multiple>
@foreach($contactstudents as $id => $contactstudent)
<option value="{{ $id }}" {{ in_array($id, old('contactstudents', [])) ? 'selected' : '' }}>{{ $contactstudent }}</option>
@endforeach
</select>
@if($errors->has('contactstudents'))
<span class="text-danger">{{ $errors->first('contactstudents') }}</span>
@endif
<span class="help-block">{{ trans('cruds.scienceActivity.fields.contactstudent_helper') }}</span>
</div>
<div class="form-group">
<label class="required" for="activity_start">{{ trans('cruds.scienceActivity.fields.activity_start') }}</label>
<input class="form-control datetime {{ $errors->has('activity_start') ? 'is-invalid' : '' }}" type="text" name="activity_start" id="activity_start" value="{{ old('activity_start') }}" required>
@if($errors->has('activity_start'))
<span class="text-danger">{{ $errors->first('activity_start') }}</span>
@endif
<span class="help-block">{{ trans('cruds.scienceActivity.fields.activity_start_helper') }}</span>
</div>
<div class="form-group">
<label for="activity_end">{{ trans('cruds.scienceActivity.fields.activity_end') }}</label>
<input class="form-control datetime {{ $errors->has('activity_end') ? 'is-invalid' : '' }}" type="text" name="activity_end" id="activity_end" value="{{ old('activity_end') }}">
@if($errors->has('activity_end'))
<span class="text-danger">{{ $errors->first('activity_end') }}</span>
@endif
<span class="help-block">{{ trans('cruds.scienceActivity.fields.activity_end_helper') }}</span>
</div>
<div class="form-group">
<label for="activity_types">{{ trans('cruds.scienceActivity.fields.activity_type') }}</label>
<div style="padding-bottom: 4px">
<span class="btn btn-info btn-xs select-all" style="border-radius: 0">{{ trans('global.select_all') }}</span>
<span class="btn btn-info btn-xs deselect-all" style="border-radius: 0">{{ trans('global.deselect_all') }}</span>
</div>
<select class="form-control select2 {{ $errors->has('activity_types') ? 'is-invalid' : '' }}" name="activity_types[]" id="activity_types" multiple>
@foreach($activity_types as $id => $activity_type)
<option value="{{ $id }}" {{ in_array($id, old('activity_types', [])) ? 'selected' : '' }}>{{ $activity_type }}</option>
@endforeach
</select>
@if($errors->has('activity_types'))
<span class="text-danger">{{ $errors->first('activity_types') }}</span>
@endif
<span class="help-block">{{ trans('cruds.scienceActivity.fields.activity_type_helper') }}</span>
</div>
<div class="form-group">
<label for="activity_subtypes">{{ trans('cruds.scienceActivity.fields.activity_subtype') }}</label>
<div style="padding-bottom: 4px">
<span class="btn btn-info btn-xs select-all" style="border-radius: 0">{{ trans('global.select_all') }}</span>
<span class="btn btn-info btn-xs deselect-all" style="border-radius: 0">{{ trans('global.deselect_all') }}</span>
</div>
<select class="form-control select2 {{ $errors->has('activity_subtypes') ? 'is-invalid' : '' }}" name="activity_subtypes[]" id="activity_subtypes" multiple>
@foreach($activity_subtypes as $id => $activity_subtype)
<option value="{{ $id }}" {{ in_array($id, old('activity_subtypes', [])) ? 'selected' : '' }}>{{ $activity_subtype }}</option>
@endforeach
</select>
@if($errors->has('activity_subtypes'))
<span class="text-danger">{{ $errors->first('activity_subtypes') }}</span>
@endif
<span class="help-block">{{ trans('cruds.scienceActivity.fields.activity_subtype_helper') }}</span>
</div>
<div class="form-group">
<div class="form-check {{ $errors->has('is_mtep') ? 'is-invalid' : '' }}">
<input type="hidden" name="is_mtep" value="0">
<input class="form-check-input" type="checkbox" name="is_mtep" id="is_mtep" value="1" {{ old('is_mtep', 0) == 1 ? 'checked' : '' }}>
<label class="form-check-label" for="is_mtep">{{ trans('cruds.scienceActivity.fields.is_mtep') }}</label>
</div>
@if($errors->has('is_mtep'))
<span class="text-danger">{{ $errors->first('is_mtep') }}</span>
@endif
<span class="help-block">{{ trans('cruds.scienceActivity.fields.is_mtep_helper') }}</span>
</div>
<div class="form-group">
<label for="science_areas">{{ trans('cruds.scienceActivity.fields.science_area') }}</label>
<div style="padding-bottom: 4px">
<span class="btn btn-info btn-xs select-all" style="border-radius: 0">{{ trans('global.select_all') }}</span>
<span class="btn btn-info btn-xs deselect-all" style="border-radius: 0">{{ trans('global.deselect_all') }}</span>
</div>
<select class="form-control select2 {{ $errors->has('science_areas') ? 'is-invalid' : '' }}" name="science_areas[]" id="science_areas" multiple>
@foreach($science_areas as $id => $science_area)
<option value="{{ $id }}" {{ in_array($id, old('science_areas', [])) ? 'selected' : '' }}>{{ $science_area }}</option>
@endforeach
</select>
@if($errors->has('science_areas'))
<span class="text-danger">{{ $errors->first('science_areas') }}</span>
@endif
<span class="help-block">{{ trans('cruds.scienceActivity.fields.science_area_helper') }}</span>
</div>
<div class="form-group">
<label for="sciencedirections">{{ trans('cruds.scienceActivity.fields.sciencedirection') }}</label>
<div style="padding-bottom: 4px">
<span class="btn btn-info btn-xs select-all" style="border-radius: 0">{{ trans('global.select_all') }}</span>
<span class="btn btn-info btn-xs deselect-all" style="border-radius: 0">{{ trans('global.deselect_all') }}</span>
</div>
<select class="form-control select2 {{ $errors->has('sciencedirections') ? 'is-invalid' : '' }}" name="sciencedirections[]" id="sciencedirections" multiple>
@foreach($sciencedirections as $id => $sciencedirection)
<option value="{{ $id }}" {{ in_array($id, old('sciencedirections', [])) ? 'selected' : '' }}>{{ $sciencedirection }}</option>
@endforeach
</select>
@if($errors->has('sciencedirections'))
<span class="text-danger">{{ $errors->first('sciencedirections') }}</span>
@endif
<span class="help-block">{{ trans('cruds.scienceActivity.fields.sciencedirection_helper') }}</span>
</div>
<div class="form-group">
<div class="form-check {{ $errors->has('is_financed') ? 'is-invalid' : '' }}">
<input type="hidden" name="is_financed" value="0">
<input class="form-check-input" type="checkbox" name="is_financed" id="is_financed" value="1" {{ old('is_financed', 0) == 1 ? 'checked' : '' }}>
<label class="form-check-label" for="is_financed">{{ trans('cruds.scienceActivity.fields.is_financed') }}</label>
</div>
@if($errors->has('is_financed'))
<span class="text-danger">{{ $errors->first('is_financed') }}</span>
@endif
<span class="help-block">{{ trans('cruds.scienceActivity.fields.is_financed_helper') }}</span>
</div>
<div class="form-group">
<label for="description">{{ trans('cruds.scienceActivity.fields.description') }}</label>
<textarea class="form-control ckeditor {{ $errors->has('description') ? 'is-invalid' : '' }}" name="description" id="description">{!! old('description') !!}</textarea>
@if($errors->has('description'))
<span class="text-danger">{{ $errors->first('description') }}</span>
@endif
<span class="help-block">{{ trans('cruds.scienceActivity.fields.description_helper') }}</span>
</div>
<div class="form-group">
<label class="required" for="value">{{ trans('cruds.scienceActivity.fields.value') }}</label>
<input class="form-control {{ $errors->has('value') ? 'is-invalid' : '' }}" type="number" name="value" id="value" value="{{ old('value', '0') }}" step="0.01" required>
@if($errors->has('value'))
<span class="text-danger">{{ $errors->first('value') }}</span>
@endif
<span class="help-block">{{ trans('cruds.scienceActivity.fields.value_helper') }}</span>
</div>
<div class="form-group">
<label class="required" for="accountabledepartments">{{ trans('cruds.scienceActivity.fields.accountabledepartment') }}</label>
<div style="padding-bottom: 4px">
<span class="btn btn-info btn-xs select-all" style="border-radius: 0">{{ trans('global.select_all') }}</span>
<span class="btn btn-info btn-xs deselect-all" style="border-radius: 0">{{ trans('global.deselect_all') }}</span>
</div>
<select class="form-control select2 {{ $errors->has('accountabledepartments') ? 'is-invalid' : '' }}" name="accountabledepartments[]" id="accountabledepartments" multiple required>
@foreach($accountabledepartments as $id => $accountabledepartment)
<option value="{{ $id }}" {{ in_array($id, old('accountabledepartments', [])) ? 'selected' : '' }}>{{ $accountabledepartment }}</option>
@endforeach
</select>
@if($errors->has('accountabledepartments'))
<span class="text-danger">{{ $errors->first('accountabledepartments') }}</span>
@endif
<span class="help-block">{{ trans('cruds.scienceActivity.fields.accountabledepartment_helper') }}</span>
</div>
<div class="form-group">
<label for="accountablesubsections">{{ trans('cruds.scienceActivity.fields.accountablesubsection') }}</label>
<div style="padding-bottom: 4px">
<span class="btn btn-info btn-xs select-all" style="border-radius: 0">{{ trans('global.select_all') }}</span>
<span class="btn btn-info btn-xs deselect-all" style="border-radius: 0">{{ trans('global.deselect_all') }}</span>
</div>
<select class="form-control select2 {{ $errors->has('accountablesubsections') ? 'is-invalid' : '' }}" name="accountablesubsections[]" id="accountablesubsections" multiple>
@foreach($accountablesubsections as $id => $accountablesubsection)
<option value="{{ $id }}" {{ in_array($id, old('accountablesubsections', [])) ? 'selected' : '' }}>{{ $accountablesubsection }}</option>
@endforeach
</select>
@if($errors->has('accountablesubsections'))
<span class="text-danger">{{ $errors->first('accountablesubsections') }}</span>
@endif
<span class="help-block">{{ trans('cruds.scienceActivity.fields.accountablesubsection_helper') }}</span>
</div>
<div class="form-group">
<label class="required" for="accountablepersonkks">{{ trans('cruds.scienceActivity.fields.accountablepersonkk') }}</label>
<div style="padding-bottom: 4px">
<span class="btn btn-info btn-xs select-all" style="border-radius: 0">{{ trans('global.select_all') }}</span>
<span class="btn btn-info btn-xs deselect-all" style="border-radius: 0">{{ trans('global.deselect_all') }}</span>
</div>
<select class="form-control select2 {{ $errors->has('accountablepersonkks') ? 'is-invalid' : '' }}" name="accountablepersonkks[]" id="accountablepersonkks" multiple required>
@foreach($accountablepersonkks as $id => $accountablepersonkk)
<option value="{{ $id }}" {{ in_array($id, old('accountablepersonkks', [])) ? 'selected' : '' }}>{{ $accountablepersonkk }}</option>
@endforeach
</select>
@if($errors->has('accountablepersonkks'))
<span class="text-danger">{{ $errors->first('accountablepersonkks') }}</span>
@endif
<span class="help-block">{{ trans('cruds.scienceActivity.fields.accountablepersonkk_helper') }}</span>
</div>
<div class="form-group">
<label for="other_accountable">{{ trans('cruds.scienceActivity.fields.other_accountable') }}</label>
<input class="form-control {{ $errors->has('other_accountable') ? 'is-invalid' : '' }}" type="text" name="other_accountable" id="other_accountable" value="{{ old('other_accountable', '') }}">
@if($errors->has('other_accountable'))
<span class="text-danger">{{ $errors->first('other_accountable') }}</span>
@endif
<span class="help-block">{{ trans('cruds.scienceActivity.fields.other_accountable_helper') }}</span>
</div>
<div class="form-group">
<label for="other_accountable_contact">{{ trans('cruds.scienceActivity.fields.other_accountable_contact') }}</label>
<textarea class="form-control {{ $errors->has('other_accountable_contact') ? 'is-invalid' : '' }}" name="other_accountable_contact" id="other_accountable_contact">{{ old('other_accountable_contact') }}</textarea>
@if($errors->has('other_accountable_contact'))
<span class="text-danger">{{ $errors->first('other_accountable_contact') }}</span>
@endif
<span class="help-block">{{ trans('cruds.scienceActivity.fields.other_accountable_contact_helper') }}</span>
</div>
<div class="form-group">
<label>{{ trans('cruds.scienceActivity.fields.state') }}</label>
<select class="form-control {{ $errors->has('state') ? 'is-invalid' : '' }}" name="state" id="state">
<option value disabled {{ old('state', null) === null ? 'selected' : '' }}>{{ trans('global.pleaseSelect') }}</option>
@foreach(App\Models\ScienceActivity::STATE_SELECT as $key => $label)
<option value="{{ $key }}" {{ old('state', 'not_started') === (string) $key ? 'selected' : '' }}>{{ $label }}</option>
@endforeach
</select>
@if($errors->has('state'))
<span class="text-danger">{{ $errors->first('state') }}</span>
@endif
<span class="help-block">{{ trans('cruds.scienceActivity.fields.state_helper') }}</span>
</div>
<div class="form-group">
<label for="attachments">{{ trans('cruds.scienceActivity.fields.attachments') }}</label>
<div class="needsclick dropzone {{ $errors->has('attachments') ? 'is-invalid' : '' }}" id="attachments-dropzone">
</div>
@if($errors->has('attachments'))
<span class="text-danger">{{ $errors->first('attachments') }}</span>
@endif
<span class="help-block">{{ trans('cruds.scienceActivity.fields.attachments_helper') }}</span>
</div>
<div class="form-group">
<button class="btn btn-success" type="submit">
{{ trans('global.save') }}
</button>
</div>
</form>
</div>
</div>
@endsection
@section('scripts')
<script>
$(document).ready(function () {
function SimpleUploadAdapter(editor) {
editor.plugins.get('FileRepository').createUploadAdapter = function(loader) {
return {
upload: function() {
return loader.file
.then(function (file) {
return new Promise(function(resolve, reject) {
// Init request
var xhr = new XMLHttpRequest();
xhr.open('POST', '{{ route('admin.science-activities.storeCKEditorImages') }}', true);
xhr.setRequestHeader('x-csrf-token', window._token);
xhr.setRequestHeader('Accept', 'application/json');
xhr.responseType = 'json';
// Init listeners
var genericErrorText = `Couldn't upload file: ${ file.name }.`;
xhr.addEventListener('error', function() { reject(genericErrorText) });
xhr.addEventListener('abort', function() { reject() });
xhr.addEventListener('load', function() {
var response = xhr.response;
if (!response || xhr.status !== 201) {
return reject(response && response.message ? `${genericErrorText}\n${xhr.status} ${response.message}` : `${genericErrorText}\n ${xhr.status} ${xhr.statusText}`);
}
$('form').append('<input type="hidden" name="ck-media[]" value="' + response.id + '">');
resolve({ default: response.url });
});
if (xhr.upload) {
xhr.upload.addEventListener('progress', function(e) {
if (e.lengthComputable) {
loader.uploadTotal = e.total;
loader.uploaded = e.loaded;
}
});
}
// Send request
var data = new FormData();
data.append('upload', file);
data.append('crud_id', '{{ $scienceActivity->id ?? 0 }}');
xhr.send(data);
});
})
}
};
}
}
var allEditors = document.querySelectorAll('.ckeditor');
for (var i = 0; i < allEditors.length; ++i) {
ClassicEditor.create(
allEditors[i], {
extraPlugins: [SimpleUploadAdapter]
}
);
}
});
</script>
<script>
var uploadedAttachmentsMap = {}
Dropzone.options.attachmentsDropzone = {
url: '{{ route('admin.science-activities.storeMedia') }}',
maxFilesize: 10, // MB
addRemoveLinks: true,
headers: {
'X-CSRF-TOKEN': "{{ csrf_token() }}"
},
params: {
size: 10
},
success: function (file, response) {
$('form').append('<input type="hidden" name="attachments[]" value="' + response.name + '">')
uploadedAttachmentsMap[file.name] = response.name
},
removedfile: function (file) {
file.previewElement.remove()
var name = ''
if (typeof file.file_name !== 'undefined') {
name = file.file_name
} else {
name = uploadedAttachmentsMap[file.name]
}
$('form').find('input[name="attachments[]"][value="' + name + '"]').remove()
},
init: function () {
@if(isset($scienceActivity) && $scienceActivity->attachments)
var files =
{!! json_encode($scienceActivity->attachments) !!}
for (var i in files) {
var file = files[i]
this.options.addedfile.call(this, file)
file.previewElement.classList.add('dz-complete')
$('form').append('<input type="hidden" name="attachments[]" value="' + file.file_name + '">')
}
@endif
},
error: function (file, response) {
if ($.type(response) === 'string') {
var message = response //dropzone sends it's own error messages in string
} else {
var message = response.errors.file
}
file.previewElement.classList.add('dz-error')
_ref = file.previewElement.querySelectorAll('[data-dz-errormessage]')
_results = []
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
node = _ref[_i]
_results.push(node.textContent = message)
}
return _results
}
}
</script>
@endsection