Skip to content

Commit 3da3a76

Browse files
author
d.nebolsin
committed
first commit
0 parents  commit 3da3a76

File tree

8 files changed

+594
-0
lines changed

8 files changed

+594
-0
lines changed

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2024 hiddenpathz
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# QuickEditAccordion Widget
2+
3+
## Description
4+
5+
`QuickEditAccordion` is a Yii2 widget designed to display data in an accordion layout with inline editing capabilities. It supports both table and list views and uses AJAX for asynchronous data updates.
6+
7+
## Installation
8+
9+
To install the `QuickEditAccordion` widget, add it to your Yii2 project by including it in your composer.json file or cloning the repository into your project directory.
10+
11+
12+
## Configuration
13+
14+
The widget provides several customizable properties:
15+
16+
- `type`: Display type (`'table'` or `'list'`). Default is `'table'`.
17+
- `action`: URL to which form data will be sent for saving.
18+
- `items`: Array of items to be displayed in the accordion.
19+
- Additional options for customizing appearance and behavior: `options`, `accordionOptions`, `listStyle`, `labelStyle`, `valueStyle`.
20+
21+
## Example Usage
22+
23+
```php
24+
echo QuickEditAccordion::widget([
25+
'type' => 'list',
26+
'action' => Url::to(['controller/action']),
27+
'items' => [
28+
// Your items array
29+
],
30+
]);
31+
```
32+
33+
## JavaScript Functionality
34+
35+
The widget includes JavaScript code to enable inline editing functionality. Clicking an element marked with the `.editable` class turns it into a text field, allowing the user to modify its value. The changes are saved asynchronously via AJAX.
36+
37+
### Example of a Controller to Handle the AJAX Request
38+
39+
```php
40+
public function actionSave() {
41+
Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
42+
$index = Yii::$app->request->post('index');
43+
$attribute = Yii::$app->request->post('attribute');
44+
$newValue = Yii::$app->request->post('newValue');
45+
46+
// Logic for processing changes saving
47+
48+
return ['success' => true, 'newValue' => $newValue];
49+
}
50+
```

README_RU.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Виджет QuickEditAccordion
2+
3+
## Описание
4+
5+
Виджет `QuickEditAccordion` предназначен для отображения данных в формате аккордеона с возможностью их редактирования непосредственно в интерфейсе пользователя. Поддерживается два режима отображения: в виде таблицы и в виде списка. Этот виджет разработан для использования в приложениях на Yii2 и использует jQuery для динамического взаимодействия с пользователем.
6+
7+
## Возможности
8+
9+
- Редактирование данных на месте (inline editing).
10+
- Поддержка отображения данных в виде таблицы или списка.
11+
- Настраиваемый внешний вид через CSS стили.
12+
- Асинхронное сохранение изменений с помощью AJAX запросов.
13+
14+
## Установка
15+
16+
Виджет необходимо установить как часть вашего проекта Yii2. Это можно сделать, добавив код виджета в соответствующую директорию вашего приложения.
17+
18+
## Использование
19+
20+
### Конфигурация виджета
21+
22+
Виджет `QuickEditAccordion` предоставляет ряд настраиваемых свойств:
23+
24+
- `type`: Тип отображения (`'table'` или `'list'`). По умолчанию используется `'table'`.
25+
- `action`: URL, на который будет отправлен AJAX запрос для сохранения изменений.
26+
- `items`: Массив элементов для отображения.
27+
- `options`: Массив HTML опций для контейнера виджета.
28+
- `accordionOptions`, `listStyle`, `labelStyle`, `valueStyle`: Опции для настройки внешнего вида и поведения виджета.
29+
30+
### Пример использования
31+
32+
```php
33+
echo QuickEditAccordion::widget([
34+
'type' => 'list',
35+
'action' => Url::to(['your/controller/action']),
36+
'items' => [
37+
// Массив элементов для отображения
38+
],
39+
'options' => [
40+
'class' => 'your-custom-class',
41+
],
42+
]);
43+
44+
```
45+
## JavaScript функциональность
46+
47+
Виджет включает JavaScript код для реализации функционала редактирования на месте. При клике на элемент, отмеченный классом `.editable`, он превращается в текстовое поле, позволяя пользователю изменить значение. Изменения сохраняются асинхронно через AJAX.
48+
49+
### Пример контроллера для обработки AJAX запроса
50+
51+
```php
52+
53+
public function actionSave() {
54+
Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
55+
$index = Yii::$app->request->post('index');
56+
$attribute = Yii::$app->request->post('attribute');
57+
$newValue = Yii::$app->request->post('newValue');
58+
59+
// Логика обработки сохранения изменений
60+
61+
return ['success' => true, 'newValue' => $newValue];
62+
}
63+
```
64+
65+
## Лицензия
66+
67+
QuickEditAccordion выпущен под лицензией MIT. Подробную информацию можно найти в файле LICENSE в корневой директории проекта.

composer.json

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{
2+
"name": "hiddenpathz/yii2-quick-edit-accordion",
3+
"description": "An asynchronous widget for quick attribute editing for Yii2",
4+
"keywords": [
5+
"yii",
6+
"extension",
7+
"hiddenpathz",
8+
"widget",
9+
"yii2",
10+
"yii 2",
11+
"accordion",
12+
"quick",
13+
"edit"
14+
],
15+
"type": "yii2-extension",
16+
"version": "0.0.1",
17+
"license": "MIT",
18+
"authors": [
19+
{
20+
"name": "Dmitry Nebolsin",
21+
"email": "[email protected]"
22+
}
23+
],
24+
"require": {
25+
"php": ">=7.4",
26+
"yiisoft/yii2": "~2.0.14",
27+
"yiisoft/yii2-bootstrap": "~2.0.0 || ~2.1.0"
28+
},
29+
"support": {
30+
"issues": "https://github.com/hiddenpathz/yii2-quick-edit-accordion/issues?state=open",
31+
"source": "https://github.com/hiddenpathz/yii2-quick-edit-accordion"
32+
},
33+
"autoload": {
34+
"psr-4": {
35+
"hiddenpathz\\QuickEditAccordion\\": "src/"
36+
}
37+
}
38+
}

0 commit comments

Comments
 (0)