them filters trong form dong bo

This commit is contained in:
dongpd 2020-12-29 15:35:04 +07:00
parent cb6c8fba32
commit d296533184
5 changed files with 88 additions and 10 deletions

View File

@ -401,11 +401,16 @@ class ListManagementController extends Controller {
])
]
])), true);
$filters = [];
foreach ($datas['data'] as $key => $value) {
$filters[$value['code']] = $value['code'] . " - " . $value['name'] . " - " . $value['department'];
}
Yii::$app->response->format = "json";
return [
"title" => "<i class='fa fa-download'></i> Đồng bộ từ máy chủ",
"form" => $this->renderPartial("list-server", [
"datas" => $datas['data'],
"filters" => $filters,
"allID" => ListManagement::getAllID()
])
];
@ -633,10 +638,16 @@ class ListManagementController extends Controller {
public function actionSyncToServer() {
if (Yii::$app->request->isAjax) {
Yii::$app->response->format = "json";
$datas = ListManagement::find()->orderBy(["code" => SORT_ASC])->all();
$filters = [];
foreach ($datas as $key => $value) {
$filters[$value->code] = $value->code . " - " . $value->name . " - " . $value->address;
}
return [
"title" => "<i class='fa fa-upload'></i> Đồng bộ lên máy chủ",
"form" => $this->renderPartial("list-to-server", [
"datas" => ListManagement::find()->orderBy(["code" => SORT_ASC])->all()
"datas" => $datas,
"filters" => $filters
])
];
}

View File

@ -28,9 +28,12 @@
.select2-container {
width: 100% !important;
}
.select2-container--default .select2-selection--single, .select2-selection .select2-selection--single{
#form-add-staff .select2-container--default .select2-selection--single, .select2-selection .select2-selection--single{
border-color: green;
}
.select2-container--default .select2-selection--single, .select2-selection .select2-selection--single{
height: 34px !important;
}
</style>
<input type="hidden" value="{Url::to(["/list-management/add"])}" name="create_url">
<input type="hidden" value="{Url::to(["/list-management/update"])}" name="update_url">
@ -227,7 +230,7 @@
</div>
<div class="row hidden">
<div class="col-md-4 text-right">ID</div>
<div class="col-md-8">
<div class="col-md-8" id="form-add-staff">
<select name='Code' id='Code' onchange="chooseStaff(this);" data-href="{Url::to("/list-management/choose-staff")}">
<option value=""></option>
{html_options options=$staffArray}

View File

@ -1,3 +1,21 @@
<div class="row">
<div class="col-md-4">
<div class="form-group">
<div class="input-group">
<div class="input-group-addon">Tìm kiếm</div>
<select class="form-control" id="filter-from-server" onchange="filters(this);">
<option value=""></option>
{html_options options=$filters}
</select>
<div class="input-group-btn">
<button class="btn btn-default" data-toggle="tooltip" title="Hủy bỏ tìm kiếm" onclick="removeFilters();">
<i class="fa fa-remove"></i>
</button>
</div>
</div>
</div>
</div>
</div>
<div style="max-height: 750px;overflow-y: auto;">
<table class="table table-bordered table-striped">
<thead>
@ -12,7 +30,7 @@
</thead>
<tbody id="sync-lists">
{foreach from=$datas item=arr}
<tr onclick="choooseToSync(this);" style="cursor: pointer;" class="{if !in_array($arr.idStaff,$allID)}not-in-list{/if}" data-stt="false" data-id="{$arr.idStaff}">
<tr id="filters-{$arr.code}" onclick="choooseToSync(this);" style="cursor: pointer;" class="filters {if !in_array($arr.idStaff,$allID)}not-in-list{/if}" data-stt="false" data-id="{$arr.idStaff}">
<td>
<div id="full-data-{$arr.idStaff}" class="hidden">{json_encode($arr)}</div>
{$arr.idStaff}
@ -52,13 +70,13 @@
</div>
</div>
<div class="col-md-5 text-right">
<button class="btn btn-default" onclick="checkAllNotInList();">
<button class="btn btn-default btn-select" onclick="checkAllNotInList();">
Chọn đối tượng chưa tồn tại
</button>
<button class="btn btn-default" onclick="checkAllSync(true);">
<button class="btn btn-default btn-select" onclick="checkAllSync(true);">
Chọn tất cả
</button>
<button class="btn btn-default" onclick="checkAllSync(false);">
<button class="btn btn-default btn-select" onclick="checkAllSync(false);">
Bỏ chọn tất cả
</button>
<button class="btn btn-primary" onclick="_syncFromServer();">

View File

@ -1,3 +1,21 @@
<div class="row">
<div class="col-md-4">
<div class="form-group">
<div class="input-group">
<div class="input-group-addon">Tìm kiếm</div>
<select class="form-control" id="filter-from-server" onchange="filters(this);">
<option value=""></option>
{html_options options=$filters}
</select>
<div class="input-group-btn">
<button class="btn btn-default" data-toggle="tooltip" title="Hủy bỏ tìm kiếm" onclick="removeFilters();">
<i class="fa fa-remove"></i>
</button>
</div>
</div>
</div>
</div>
</div>
<div style="max-height: 750px;overflow-y: auto;">
<table class="table table-bordered table-striped">
<thead>
@ -13,7 +31,7 @@
</thead>
<tbody id="sync-lists">
{foreach from=$datas item=arr}
<tr onclick="choooseToSync(this);" style="cursor: pointer;" data-stt="false" data-id="{$arr->code}">
<tr id="filters-{$arr.code}" class="filters" onclick="choooseToSync(this);" style="cursor: pointer;" data-stt="false" data-id="{$arr->code}">
<td>{$arr->code}</td>
<td>{$arr->name}</td>
<td>{$arr->gender}</td>
@ -49,10 +67,10 @@
</div>
</div>
<div class="col-md-4 text-right">
<button class="btn btn-default" onclick="checkAllSync(true);">
<button class="btn btn-default btn-select" onclick="checkAllSync(true);">
Chọn tất cả
</button>
<button class="btn btn-default" onclick="checkAllSync(false);">
<button class="btn btn-default btn-select" onclick="checkAllSync(false);">
Bỏ chọn tất cả
</button>
<button class="btn btn-primary" onclick="_syncToServer();">

View File

@ -411,6 +411,9 @@ function _syncFromServerForm(e) {
success: function (data) {
common.modalBlock(false);
common.modalOpenFullScreen(data.form, data.title);
$("#filter-from-server").select2({
placeholder: "Tìm kiếm theo ID hoặc tên"
});
},
error: function (jqXHR, textStatus, errorThrown) {
common.modalBlock(false);
@ -512,6 +515,9 @@ function _syncToServerForm(e) {
success: function (data) {
common.modalBlock(false);
common.modalOpenFullScreen(data.form, data.title);
$("#filter-from-server").select2({
placeholder: "Tìm kiếm theo ID hoặc tên"
});
},
error: function (jqXHR, textStatus, errorThrown) {
common.modalBlock(false);
@ -570,3 +576,25 @@ function syncFeatureToServer(id, fullData) {
}
});
}
function filters(e) {
var id = $(e).val();
if (id === "") {
$(".filters").removeClass("hidden");
$(".btn-select").removeClass("hidden");
checkAllSync(false);
} else {
$(".filters").addClass("hidden");
$("#filters-" + id).removeClass("hidden");
$(".btn-select").addClass("hidden");
checkAllSync(false);
choooseToSync($("#filters-" + id));
}
}
function removeFilters() {
$(".filters").removeClass("hidden");
$(".btn-select").removeClass("hidden");
$("#filter-from-server").val('').trigger('change');
checkAllSync(false);
}