Skip to content

Commit 8606382

Browse files
committed
Upd README.md
1 parent 33abbe3 commit 8606382

File tree

1 file changed

+93
-1
lines changed

1 file changed

+93
-1
lines changed

README.md

Lines changed: 93 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# FileApi widget for Yii2
22

3+
Wrapper for [FileAPI](https://github.com/mailru/FileAPI)
4+
35
## Installation
46

57
```
@@ -8,4 +10,94 @@ composer require rkit/fileapi-widget-yii2
810

911
## Usage
1012

11-
13+
### Basic usage
14+
15+
1. Form
16+
17+
```php
18+
<?php
19+
use yii\helpers\Html;
20+
use yii\web\JsExpression;
21+
use rkit\fileapi\Widget as FileApi;
22+
?>
23+
<?= $form->field($model, $attribute, ['template' => "{label}\n{error}\n{input}\n{hint}"])
24+
->widget(FileApi::className(), [
25+
'template' => '@app/path/to/template',
26+
'callbacks' => [
27+
'select' => new JsExpression('function (evt, ui) {
28+
var ufile = ui.files[0],
29+
$el = $(this);
30+
31+
if (ui && ui.other.length && ui.other[0].errors) {
32+
alert("'.Yii::t('app', 'Incorrect file format').': " + ui.other[0].name);
33+
}
34+
}'),
35+
'filecomplete' => [new JsExpression('function (evt, uiEvt) {
36+
if (uiEvt.result.error) {
37+
alert(uiEvt.result.error);
38+
} else {
39+
$(".field-' . Html::getInputId($model, $attribute) . '").find(".help-block").empty();
40+
$(".field-' . Html::getInputId($model, $attribute) . '").removeClass("has-error");
41+
$(this).find("input[type=\"hidden\"]").val(uiEvt.result.id);
42+
$(this).find(".fileapi-preview-wrapper").html("<img src=" + uiEvt.result.path + ">");
43+
$(this).find(".fileapi-browse-text").text("' . Yii::t('app', 'Uploaded') . '");
44+
}
45+
}'),
46+
]],
47+
'settings' => [
48+
'url' => yii\helpers\Url::toRoute([$attribute . '-upload']),
49+
'duplicate' => true
50+
]
51+
])
52+
); ?>
53+
```
54+
55+
2. Template
56+
57+
```php
58+
<div id="<?= $selector; ?>" class="fileapi">
59+
<div class="btn btn-default js-fileapi-wrapper">
60+
<div class="fileapi-browse" data-fileapi="active.hide">
61+
<span class="glyphicon glyphicon-picture"></span>
62+
<span class="fileapi-browse-text">
63+
<?= $value ? Yii::t('app', 'Uploaded') : Yii::t('app', 'Upload') ?>
64+
</span>
65+
<span data-fileapi="name"></span>
66+
<input type="file" name="<?= $inputName ?>">
67+
</div>
68+
<div class="fileapi-progress" data-fileapi="active.show">
69+
<div class="progress progress-striped">
70+
<div class="fileapi-progress-bar progress-bar progress-bar-info" data-fileapi="progress"
71+
role="progressbar" aria-valuemin="0" aria-valuemax="100"></div>
72+
</div>
73+
</div>
74+
</div><br>
75+
<?php if ($preview === true) : ?>
76+
<a href="#" class="fileapi-preview">
77+
<span data-fileapi="delete" class="fileapi-preview-delete">
78+
<span class="glyphicon glyphicon-trash"></span>
79+
</span>
80+
<span class="fileapi-preview-wrapper">
81+
<?php if (!empty($value)):?>
82+
<img src="<?= $value ?>">
83+
<?php endif?>
84+
</span>
85+
</a>
86+
87+
<?php $this->registerJs("
88+
$(document).on('click', '#$selector [data-fileapi=\"delete\"]', function(evt) {
89+
evt.preventDefault();
90+
var file = $(this).closest('#$selector');
91+
file.fileapi('clear');
92+
file.find('input[type=\"hidden\"]').val('');
93+
file.find('.fileapi-preview-wrapper').empty();
94+
file.find('.fileapi-browse-text').text('" . Yii::t('app', 'Upload') . "');
95+
})"); ?>
96+
<?php endif; ?>
97+
98+
<?= $input ?>
99+
100+
</div>
101+
```
102+
103+
### Gallery

0 commit comments

Comments
 (0)