Add userfield-type "picture"

This commit is contained in:
fipwmaqzufheoxq92ebc 2020-08-31 12:18:36 +02:00
parent fab8344da7
commit 576541782e
5 changed files with 23 additions and 2 deletions

View File

@ -44,3 +44,6 @@ msgstr ""
msgid "file" msgid "file"
msgstr "" msgstr ""
msgid "image"
msgstr ""

View File

@ -49,7 +49,6 @@ Grocy.Components.UserfieldsForm.Save = function(success, error)
}, },
function (xhr) function (xhr)
{ {
Grocy.FrontendHelpers.EndUiBusy("equipment-form");
Grocy.FrontendHelpers.ShowGenericError('Error while saving, probably this item already exists', xhr.response) Grocy.FrontendHelpers.ShowGenericError('Error while saving, probably this item already exists', xhr.response)
} }
); );
@ -121,6 +120,8 @@ Grocy.Components.UserfieldsForm.Load = function()
file_info.find('a.userfield-current-file') file_info.find('a.userfield-current-file')
.attr('href', U('/files/userfiles/' + value)) .attr('href', U('/files/userfiles/' + value))
.text(file_name); .text(file_name);
file_info.find('img.userfield-current-file')
.attr('src', U('/files/userfiles/' + value + '?force_serve_as=picture'))
file_info.find('button.userfield-file-delete').click( file_info.find('button.userfield-file-delete').click(
function () { function () {
file_info.addClass('d-none'); file_info.addClass('d-none');

View File

@ -15,8 +15,9 @@ class UserfieldsService extends BaseService
const USERFIELD_TYPE_PRESET_CHECKLIST = 'preset-checklist'; const USERFIELD_TYPE_PRESET_CHECKLIST = 'preset-checklist';
const USERFIELD_TYPE_LINK = 'link'; const USERFIELD_TYPE_LINK = 'link';
const USERFIELD_TYPE_FILE = 'file'; const USERFIELD_TYPE_FILE = 'file';
const USERFIELD_TYPE_IMAGE = 'image';
public function __construct() public function __construct()
{ {
parent::__construct(); parent::__construct();
} }

View File

@ -14,6 +14,11 @@
<a href="{{ $userfieldObject->value }}" target="_blank">{{ $userfieldObject->value }}</a> <a href="{{ $userfieldObject->value }}" target="_blank">{{ $userfieldObject->value }}</a>
@elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_FILE) @elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_FILE)
<a href="{{ $U('/files/userfiles/'. $userfieldObject->value) }}" target="_blank">{{ base64_decode(explode('_', $userfieldObject->value)[1]) }}</a> <a href="{{ $U('/files/userfiles/'. $userfieldObject->value) }}" target="_blank">{{ base64_decode(explode('_', $userfieldObject->value)[1]) }}</a>
@elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_IMAGE)
<a href="{{ $U('/files/userfiles/'. $userfieldObject->value . '?force_serve_as=picture') }}">
<img src="{{ $U('/files/userfiles/'. $userfieldObject->value . '?force_serve_as=picture&best_fit_width=32&best_fit_height=32') }}"
class="lazy" title="{{ base64_decode(explode('_', $userfieldObject->value)[1]) }}" alt="{{ base64_decode(explode('_', $userfieldObject->value)[1]) }}">
</a>
@else @else
{{ $userfieldObject->value }} {{ $userfieldObject->value }}
@endif @endif

View File

@ -109,6 +109,17 @@
</button> </button>
</div> </div>
</div> </div>
@elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_IMAGE)
<div class="form-group">
<label for="{{ $userfield->name }}">{{ $userfield->caption }}</label>
<input type="file" class="form-control userfield-input" data-userfield-name="{{ $userfield->name }}">
<div class="d-none userfield-file">
<img src="" alt="{{ $userfield->name }}" class="userfield-current-file" data-uf-name="{{ $userfield->name }}"/>
<button type="button" class="userfield-current-file btn btn-danger userfield-file-delete" data-uf-name="{{ $userfield->name }}">
<i class="fas fa-trash"></i>
</button>
</div>
</div>
@endif @endif
@endforeach @endforeach