update manage schedule

This commit is contained in:
dongpd 2022-09-26 09:43:12 +07:00
parent ac0588b711
commit 33e439de8f
16 changed files with 677 additions and 25 deletions

View File

@ -76,6 +76,10 @@ class ListManagementController extends Controller {
]);
$updating = \app\models\SyncUrl::findOne(['key_config' => 'updating']);
}
$dataProvider->pagination->pageSize = 20;
if (Yii::$app->request->get("per-page"))
$dataProvider->pagination->pageSize = Yii::$app->request->get("per-page");
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
@ -808,4 +812,110 @@ class ListManagementController extends Controller {
return file_get_contents("http://minio1.beetai.com/biface-school/origin/385/454_20201126101221879048.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=minioadmin%2F20201230%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20201230T081350Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=df7586a01bb128c0585edd87d1024b1ddb33483fd335e81238103fd2467b4772");
}
public function actionSchedule() {
Yii::$app->response->format = "json";
if (Yii::$app->request->post()) {
$post = Yii::$app->request->post();
$model = new \app\models\Schedule();
$datas = [];
foreach ($post['lists'] as $key => $value) {
$datas[] = [$value, $post['fromTime'], $post['toTime'], $post['fromDate'], $post['toDate'], implode(",", $post['dateOfWeek'])];
}
$model->multiCreate($datas);
return ["status" => true];
} else {
return [
"title" => Yii::t("app", "GAN_LICH_TRINH"),
"form" => $this->renderPartial("schedule", ["type" => "create"])
];
}
}
public function actionEditSchedule($id) {
Yii::$app->response->format = "json";
$model = \app\models\Schedule::findOne($id);
if (Yii::$app->request->post()) {
$post = Yii::$app->request->post();
$dateOfWeek = implode(",", $post['dateOfWeek']);
if ($post['editAll'] == "true" && isset($post['lists'])) {
foreach ($post['lists'] as $key => $value) {
$schedule = \app\models\Schedule::findOne([
'from_time' => $model->from_time,
'to_time' => $model->to_time,
'from_date' => $model->from_date,
'to_date' => $model->to_date,
'date_of_week' => $model->date_of_week,
'staff_id' => $value
]);
if ($schedule) {
$schedule->from_time = $post['fromTime'];
$schedule->to_time = $post['toTime'];
$schedule->from_date = $post['fromDate'];
$schedule->to_date = $post['toDate'];
$schedule->date_of_week = $dateOfWeek;
$schedule->save();
} else {
$modelSchedule = new \app\models\Schedule();
$modelSchedule->create([
'staff_id' => $value,
'from_time' => $post['fromTime'],
'to_time' => $post['toTime'],
'from_date' => $post['fromDate'],
'to_date' => $post['toDate'],
'date_of_week' => $dateOfWeek
]);
}
}
} else {
$model->from_time = $post['fromTime'];
$model->to_time = $post['toTime'];
$model->from_date = $post['fromDate'];
$model->to_date = $post['toDate'];
$model->date_of_week = $dateOfWeek;
$model->save();
}
return ["status" => true];
} else {
return [
"title" => Yii::t("app", "SUA_LICH_TRINH"),
"form" => $this->renderPartial("schedule", [
"type" => "edit",
"model" => $model
])
];
}
}
public function actionDeleteSchedule($id) {
Yii::$app->response->format = "json";
$model = \app\models\Schedule::findOne($id);
if (Yii::$app->request->post()) {
$post = Yii::$app->request->post();
if ($post['editAll'] == "true" && isset($post['lists'])) {
foreach ($post['lists'] as $key => $value) {
$schedule = \app\models\Schedule::findOne([
'from_time' => $model->from_time,
'to_time' => $model->to_time,
'from_date' => $model->from_date,
'to_date' => $model->to_date,
'date_of_week' => $model->date_of_week,
'staff_id' => $value
]);
if ($schedule)
$schedule->delete();
}
} else
$model->delete();
return ["status" => true];
} else {
return [
"title" => Yii::t("app", "XOA_LICH_TRINH"),
"form" => $this->renderPartial("schedule-delete", [
"model" => $model
])
];
}
}
}

View File

@ -20,6 +20,24 @@ class ListManagementGrid {
};
}
public static function layout($default = 20, $hiddenText = false) {
$pageSize = [10, 20, 50, 100];
$options = [];
foreach ($pageSize as $key => $value) {
$selected = "";
if (Yii::$app->request->get("per-page") && Yii::$app->request->get("per-page") == $value)
$selected = "selected";
if (!Yii::$app->request->get("per-page") && $value == $default)
$selected = "selected";
$options[] = "<option value='" . $value . "' {$selected}>" . $value . "</options>";
}
$select = "<select style='width:80px;' onchange='common.changePerPage(this);'>" . implode("", $options) . "</select>";
$text = "";
if (!$hiddenText)
$text = "Hiển thị&nbsp;&nbsp;&nbsp;";
return "{items}<div class='row'><div class='col-md-6'>{summary}</div><div class='col-md-6'><div class='row'><div class='col-md-9 text-right'>{pager}</div><div class='col-md-3'>" . $text . $select . "</div></div></div></div>";
}
public static function getLayout() {
return "{items}<div class='row'><div class='col-md-4'>{summary}</div><div class='col-md-8 text-right'>{pager}</div></div>";
}
@ -86,4 +104,25 @@ class ListManagementGrid {
};
}
public static function schedule() {
return function($model) {
$schedules = $model->schedule;
$html = "<ul style='padding-left:10px;'>";
foreach ($schedules as $key => $value) {
$btnEdit = "<i class='fa fa-edit text-green' onclick='formEditSchedule(this);' data-href='" . Url::to(['/list-management/edit-schedule', 'id' => $value->id]) . "'></i>";
$btnDelete = "<i class='fa fa-remove text-red' onclick='formDeleteSchedule(this);' data-href='" . Url::to(['/list-management/delete-schedule', 'id' => $value->id]) . "'></i>";
$btn = "<span class='btn-schedule'>" . $btnEdit . " " . $btnDelete . "</span>";
$html .= "<li class='schedule-item'>[" . $value->from_time . "-" . $value->to_time . "] " . $value->from_date . " - " . $value->to_date . " " . $btn . "</li>";
}
$html .= "</ul>";
return $html;
};
}
public static function check() {
return function($model) {
return "<input type='checkbox' value='' name='' onclick='choose(this);'>";
};
}
}

View File

@ -57,7 +57,7 @@ return [
"TIM_KIEM_DU_LIEU" => "Search the data",
"TAT_CA" => "All",
"TIM_KIEM" => "Search",
"XOA_NHIEU_DU_LIEU" => "Delete multiple data",
"XOA_NHIEU_DU_LIEU" => "Choose multiple data",
"CHON_TOAN_BO_TRANG" => "Select all data",
"BO_CHON" => "Unselect",
"XAC_NHAN_XOA" => "Deletion Confirm",
@ -137,5 +137,24 @@ return [
"RESET_THIET_BI_LOI" => "Error connecting to the server. Please check your internet connection and try again.",
"THU_LAI" => "Try again",
"TEN_DANG_NHAP_HOAC_MAT_KHAU_KHONG_DUNG" => "Incorrect username or password.",
"DOI_TUONG_CHUA_DU_ANH_MAU" => "Object does not have enough images"
"DOI_TUONG_CHUA_DU_ANH_MAU" => "Object does not have enough images",
"LICH_TRINH" => "Schedule",
"HAY_CHON_DOI_TUONG_DE_GAN_LICH_TRINH" => "Please select the object to assign the schedule",
"GAN_LICH_TRINH" => "Assign schedule",
"THOI_GIAN_VAO" => "Time in",
"THOI_GIAN_RA" => "Time out",
"NGAY_BAT_DAU" => "Start date",
"NGAY_KET_THUC" => "End date",
"NGAY_TRONG_TUAN" => "Day of the week",
"THU_HAI" => "Monday",
"THU_BA" => "Tuesday",
"THU_TU" => "Wednesday",
"THU_NAM" => "Thursday",
"THU_SAU" => "Friday",
"THU_BAY" => "Saturday",
"CHU_NHAT" => "Sunday",
"SUA_LICH_TRINH" => "Edit schedule",
"AP_DUNG_CHO_TAT_CA_DOI_TUONG_DA_CHON" => "Apply to all selected objects",
"XOA_LICH_TRINH" => "Delete schedule",
"BAN_CO_CHAC_CHAN_MUON_XOA_LICH_TRINH_NAY_KHONG" => "Are you sure you want to delete this schedule?"
];

View File

@ -57,7 +57,7 @@ return [
"TIM_KIEM_DU_LIEU" => "データ検索",
"TAT_CA" => "全部",
"TIM_KIEM" => "検索",
"XOA_NHIEU_DU_LIEU" => "大量のデータを削除する",
"XOA_NHIEU_DU_LIEU" => "複数のデータを選択",
"CHON_TOAN_BO_TRANG" => "ページ全体を選択",
"BO_CHON" => "取り消し",
"XAC_NHAN_XOA" => "削除の確認",
@ -137,5 +137,24 @@ return [
"RESET_THIET_BI_LOI" => "サーバーへの接続中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください",
"THU_LAI" => "再試行",
"TEN_DANG_NHAP_HOAC_MAT_KHAU_KHONG_DUNG" => "ユーザーネームまたはパスワードが違います",
"DOI_TUONG_CHUA_DU_ANH_MAU" => "オブジェクトに十分な画像がありません"
"DOI_TUONG_CHUA_DU_ANH_MAU" => "オブジェクトに十分な画像がありません",
"LICH_TRINH" => "スケジュール",
"HAY_CHON_DOI_TUONG_DE_GAN_LICH_TRINH" => "スケジュールを割り当てるオブジェクトを選択してください",
"GAN_LICH_TRINH" => "スケジュールを割り当てる",
"THOI_GIAN_VAO" => "の時間",
"THOI_GIAN_RA" => "タイムアウト",
"NGAY_BAT_DAU" => "開始日",
"NGAY_KET_THUC" => "終了日",
"NGAY_TRONG_TUAN" => "曜日",
"THU_HAI" => "月曜日",
"THU_BA" => "火曜日",
"THU_TU" => "水曜日",
"THU_NAM" => "木曜日",
"THU_SAU" => "金曜日",
"THU_BAY" => "土曜日",
"CHU_NHAT" => "日曜日",
"SUA_LICH_TRINH" => "スケジュールを編集",
"AP_DUNG_CHO_TAT_CA_DOI_TUONG_DA_CHON" => "選択したすべてのオブジェクトに適用",
"XOA_LICH_TRINH" => "スケジュールを削除",
"BAN_CO_CHAC_CHAN_MUON_XOA_LICH_TRINH_NAY_KHONG" => "このスケジュールを削除してもよろしいですか?"
];

View File

@ -57,7 +57,7 @@ return [
"TIM_KIEM_DU_LIEU" => "Tìm kiếm dữ liệu",
"TAT_CA" => "Tất cả",
"TIM_KIEM" => "Tìm kiếm",
"XOA_NHIEU_DU_LIEU" => "Xóa nhiều dữ liệu",
"XOA_NHIEU_DU_LIEU" => "Chọn nhiều dữ liệu",
"CHON_TOAN_BO_TRANG" => "Chọn toàn bộ trang",
"BO_CHON" => "Bỏ chọn",
"XAC_NHAN_XOA" => "Xác nhận xóa",
@ -137,5 +137,24 @@ return [
"RESET_THIET_BI_LOI" => "Lỗi kết nối đến server. Hãy kiểm tra lại kết nối internet và thử lại.",
"THU_LAI" => "Thử lại",
"TEN_DANG_NHAP_HOAC_MAT_KHAU_KHONG_DUNG" => "Tên đăng nhập hoặc mật khẩu không đúng.",
"DOI_TUONG_CHUA_DU_ANH_MAU" => "Đối tượng chưa đủ ảnh mẫu"
"DOI_TUONG_CHUA_DU_ANH_MAU" => "Đối tượng chưa đủ ảnh mẫu",
"LICH_TRINH" => "Lịch trình",
"HAY_CHON_DOI_TUONG_DE_GAN_LICH_TRINH" => "Hãy chọn đối tượng để gán lịch trình",
"GAN_LICH_TRINH" => "Gán lịch trình",
"THOI_GIAN_VAO" => "Thời gian vào",
"THOI_GIAN_RA" => "Thời gian ra",
"NGAY_BAT_DAU" => "Ngày bắt đầu",
"NGAY_KET_THUC" => "Ngày kết thúc",
"NGAY_TRONG_TUAN" => "Ngày trong tuần",
"THU_HAI" => "Thứ hai",
"THU_BA" => "Thứ ba",
"THU_TU" => "Thứ tư",
"THU_NAM" => "Thứ năm",
"THU_SAU" => "Thứ sáu",
"THU_BAY" => "Thứ bảy",
"CHU_NHAT" => "Chủ nhật",
"SUA_LICH_TRINH" => "Sửa lịch trình",
"AP_DUNG_CHO_TAT_CA_DOI_TUONG_DA_CHON" => "Áp dụng cho tất cả đối tượng đã chọn",
"XOA_LICH_TRINH" => "Xóa lịch trình",
"BAN_CO_CHAC_CHAN_MUON_XOA_LICH_TRINH_NAY_KHONG" => "Bạn có chắc chắn muốn xóa lịch trình này không?"
];

View File

@ -179,4 +179,8 @@ class ListManagement extends \yii\db\ActiveRecord {
];
}
public function getSchedule() {
return Schedule::find()->andWhere(['staff_id' => $this->id])->all();
}
}

76
models/Schedule.php Normal file
View File

@ -0,0 +1,76 @@
<?php
namespace app\models;
use Yii;
/**
* This is the model class for table "schedule".
*
* @property int $id
* @property string $staff_id
* @property string $from_time
* @property string $to_time
* @property string $from_date
* @property string $to_date
* @property string $date_of_week
*/
class Schedule extends \yii\db\ActiveRecord {
/**
* {@inheritdoc}
*/
public static function tableName() {
return 'schedule';
}
/**
* {@inheritdoc}
*/
public function rules() {
return [
[['staff_id', 'from_time', 'to_time', 'from_date', 'to_date', 'date_of_week'], 'string'],
];
}
/**
* {@inheritdoc}
*/
public function attributeLabels() {
return [
'id' => 'ID',
'staff_id' => 'Staff ID',
'from_time' => 'From Time',
'to_time' => 'To Time',
'from_date' => 'From Date',
'to_date' => 'To Date',
'date_of_week' => 'Date Of Week',
];
}
public function multiCreate($datas) {
$field = ['staff_id', 'from_time', 'to_time', 'from_date', 'to_date', 'date_of_week'];
static::getDb()->createCommand()->batchInsert($this->tableName(), $field, $datas)->execute();
return;
}
public function create($data) {
$r = $this->load([
'staff_id' => $data['staff_id'],
'from_time' => $data['from_time'],
'to_time' => $data['to_time'],
'from_date' => $data['from_date'],
'to_date' => $data['to_date'],
'date_of_week' => $data['date_of_week']
], '');
if ($r) {
try {
$this->save();
return $this->id;
} catch (\Exception $ex) {
return false;
}
}
}
}

View File

@ -30,6 +30,8 @@
<input type="hidden" name="DA_THEM_HINH_ANH_MAU" value="{Yii::t("app", "DA_THEM_HINH_ANH_MAU")}">
<input type="hidden" name="CO_LOI_XAY_RA_HAY_THU_LAI" value="{Yii::t("app", "CO_LOI_XAY_RA_HAY_THU_LAI")}">
<input type="hidden" name="ENGINE_KHONG_HOAT_DONG" value="{Yii::t("app", "ENGINE_KHONG_HOAT_DONG")}">
<input type="hidden" name="HAY_CHON_DOI_TUONG_DE_GAN_LICH_TRINH" value="{Yii::t("app", "HAY_CHON_DOI_TUONG_DE_GAN_LICH_TRINH")}">
<input type="hidden" name="BAN_CO_CHAC_CHAN_MUON_XOA_LICH_TRINH_NAY_KHONG" value="{Yii::t("app", "BAN_CO_CHAC_CHAN_MUON_XOA_LICH_TRINH_NAY_KHONG")}">
<div id="blocking" class="fade modal" role="dialog" tabindex="-1">
<div class="modal-dialog" style="top: 50%;margin-top: -45px;">

View File

@ -8,9 +8,9 @@
.row{
margin-bottom: 5px;
}
input{
width: 100%;
}
{*input{
width: 100%;
}*}
.table-striped > tbody > tr:nth-of-type(odd){
background-color: rgb(210, 210, 210);
}
@ -21,13 +21,21 @@
.feature-img:hover .btn{
visibility: visible !important;
}
.table > tbody > tr.delete-choose > td{
background-color: red;
color: #fff;
.btn-schedule{
visibility: hidden;
}
.select2-container {
.schedule-item:hover .btn-schedule{
visibility: visible !important;
}
.table > tbody > tr.delete-choose > td{
background-color: #F7D3D2;
}
#filters-face .select2-container {
width: 100% !important;
}
.pagination {
margin: 0;
}
#form-add-staff .select2-container--default .select2-selection--single, .select2-selection .select2-selection--single{
border-color: green;
}
@ -43,10 +51,10 @@
<input type="hidden" value="{Url::to(["/list-management/update-feature"])}" name="update_feature_url">
<input type="hidden" value="{Url::to(["/api/get-total-feature"])}" name="get_total_feature_url">
<div class="row">
<div class="col-md-10" style="max-height: 850px;overflow-y: auto;">
<div class="col-md-10" id="list-face" style="max-height: 850px;overflow-y: auto;">
{GridView::widget([
'dataProvider' => $dataProvider,
'layout'=> \app\helpers\ListManagementGrid::getLayout(),
'layout'=> \app\helpers\ListManagementGrid::layout(20),
'tableOptions' => [
'class' => 'table table-striped table-bordered',
'style' => 'background:#fff;min-width:700px;'
@ -58,6 +66,12 @@
'contentOptions' => ['class' => 'text-center'],
'headerOptions' => ['class' => 'text-center']
],
[
'contentOptions' => ['class' => 'text-center hidden checkbox-column'],
'headerOptions' => ['style' => 'width:3%', 'class' => 'hidden checkbox-column'],
'format' => "raw",
'value' => \app\helpers\ListManagementGrid::check()
],
[
'attribute' => 'type',
'contentOptions' => ['class' => 'text-center'],
@ -84,10 +98,10 @@
'value' => \app\helpers\ListManagementGrid::image()
],
[
'attribute' => 'time',
'contentOptions' => ['class' => 'text-center'],
'label' => Yii::t("app", "LICH_TRINH"),
'headerOptions' => ['class' => 'text-center'],
'value' => \app\helpers\ListManagementGrid::time()
'format' => "raw",
'value' => \app\helpers\ListManagementGrid::schedule()
],
[
'attribute' => 'telephone',
@ -158,6 +172,7 @@
<br>
<div class="text-center">
<button class="btn btn-danger" onclick="batchDelete(this);" data-href="{Url::to(['/list-management/batch-delete'])}">{Yii::t("app", "XAC_NHAN_XOA")}</button>
<button class="btn btn-success" onclick="scheduleForm(this);" data-href="{Url::to(['/list-management/schedule'])}">{Yii::t("app", "LICH_TRINH")}</button>
</div>
</div>
</div>

View File

@ -1,4 +1,4 @@
<div class="row">
<div class="row" id="filters-face">
<div class="col-md-4">
<div class="form-group">
<div class="input-group">

View File

@ -1,4 +1,4 @@
<div class="row">
<div class="row" id="filters-face">
<div class="col-md-4">
<div class="form-group">
<div class="input-group">

View File

@ -1,4 +1,4 @@
<div class="row">
<div class="row" id="filters-face">
<div class="col-md-4">
<div class="form-group">
<div class="input-group">

View File

@ -0,0 +1,71 @@
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="control-label">{Yii::t("app", "THOI_GIAN_VAO")}</label>
<input type="text" value="{$model->from_time|default:"00:00"}" class="form-control" id="fromTime" disabled="" name="FromTime">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="control-label">{Yii::t("app", "THOI_GIAN_RA")}</label>
<input type="text" value="{$model->to_time|default:"23:59"}" class="form-control" id="toTime" disabled=" name="ToTime">
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="control-label">{Yii::t("app", "NGAY_BAT_DAU")}</label>
<input type="text" value="{$model->from_date|default:date("d/m/Y")}" class="form-control" disabled=" id="fromDate" name="FromDate">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="control-label">{Yii::t("app", "NGAY_KET_THUC")}</label>
<input type="text" value="{$model->to_date|default:date("d/m/Y")}" class="form-control" disabled=" id="toDate" name="ToDate">
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="form-group">
<label class="control-label">{Yii::t("app", "NGAY_TRONG_TUAN")}</label>
{$dateOfWeek=["1","2","3","4","5","6","7","8"]}
{$dateOfWeek=explode(",",$model->date_of_week)}
<div class="row">
<div class="col-md-3">
{if in_array("2",$dateOfWeek)}<i class="fa fa-check text-green"></i>{else}<i class="fa fa-remove text-red"></i>{/if} {Yii::t("app", "THU_HAI")}
</div>
<div class="col-md-3">
{if in_array("3",$dateOfWeek)}<i class="fa fa-check text-green"></i>{else}<i class="fa fa-remove text-red"></i>{/if} {Yii::t("app", "THU_BA")}
</div>
<div class="col-md-3">
{if in_array("4",$dateOfWeek)}<i class="fa fa-check text-green"></i>{else}<i class="fa fa-remove text-red"></i>{/if} {Yii::t("app", "THU_TU")}
</div>
<div class="col-md-3">
{if in_array("5",$dateOfWeek)}<i class="fa fa-check text-green"></i>{else}<i class="fa fa-remove text-red"></i>{/if} {Yii::t("app", "THU_NAM")}
</div>
<div class="col-md-3">
{if in_array("6",$dateOfWeek)}<i class="fa fa-check text-green"></i>{else}<i class="fa fa-remove text-red"></i>{/if} {Yii::t("app", "THU_SAU")}
</div>
<div class="col-md-3">
{if in_array("7",$dateOfWeek)}<i class="fa fa-check text-green"></i>{else}<i class="fa fa-remove text-red"></i>{/if} {Yii::t("app", "THU_BAY")}
</div>
<div class="col-md-3">
{if in_array("8",$dateOfWeek)}<i class="fa fa-check text-green"></i>{else}<i class="fa fa-remove text-red"></i>{/if} {Yii::t("app", "CHU_NHAT")}
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<input type='checkbox' value='1' name='editAll' checked=""> {Yii::t("app","AP_DUNG_CHO_TAT_CA_DOI_TUONG_DA_CHON")}
</div>
<div class="col-md-6 text-right">
<button class="btn btn-danger" onclick="deleteSchedule(this);" data-href="{yii\helpers\Url::to(["/list-management/delete-schedule","id"=>$model->id])}">
<i class="fa fa-remove"></i> {Yii::t("app","XOA_LICH_TRINH")}
</button>
<button type="button" class="btn btn-default" data-dismiss="modal"><span class="fa fa-remove"></span> {Yii::t("app", "DONG_LAI")}</button>
</div>
</div>

View File

@ -0,0 +1,80 @@
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="control-label">{Yii::t("app", "THOI_GIAN_VAO")}</label>
<input type="text" value="{$model->from_time|default:"00:00"}" class="form-control" id="fromTime" name="FromTime">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="control-label">{Yii::t("app", "THOI_GIAN_RA")}</label>
<input type="text" value="{$model->to_time|default:"23:59"}" class="form-control" id="toTime" name="ToTime">
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="control-label">{Yii::t("app", "NGAY_BAT_DAU")}</label>
<input type="text" value="{$model->from_date|default:date("d/m/Y")}" class="form-control" id="fromDate" name="FromDate">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="control-label">{Yii::t("app", "NGAY_KET_THUC")}</label>
<input type="text" value="{$model->to_date|default:date("d/m/Y")}" class="form-control" id="toDate" name="ToDate">
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="form-group">
<label class="control-label">{Yii::t("app", "NGAY_TRONG_TUAN")}</label>
{$dateOfWeek=["1","2","3","4","5","6","7","8"]}
{if $type=="edit"}
{$dateOfWeek=explode(",",$model->date_of_week)}
{/if}
<div class="row">
<div class="col-md-3">
<input type='checkbox' value='2' name="checkbox-date" {if in_array("2",$dateOfWeek)}checked=""{/if}> {Yii::t("app", "THU_HAI")}
</div>
<div class="col-md-3">
<input type='checkbox' value='3' name="checkbox-date" {if in_array("3",$dateOfWeek)}checked=""{/if}> {Yii::t("app", "THU_BA")}
</div>
<div class="col-md-3">
<input type='checkbox' value='4' name="checkbox-date" {if in_array("4",$dateOfWeek)}checked=""{/if}> {Yii::t("app", "THU_TU")}
</div>
<div class="col-md-3">
<input type='checkbox' value='5' name="checkbox-date" {if in_array("5",$dateOfWeek)}checked=""{/if}> {Yii::t("app", "THU_NAM")}
</div>
<div class="col-md-3">
<input type='checkbox' value='6' name="checkbox-date" {if in_array("6",$dateOfWeek)}checked=""{/if}> {Yii::t("app", "THU_SAU")}
</div>
<div class="col-md-3">
<input type='checkbox' value='7' name="checkbox-date" {if in_array("7",$dateOfWeek)}checked=""{/if}> {Yii::t("app", "THU_BAY")}
</div>
<div class="col-md-3">
<input type='checkbox' value='8' name="checkbox-date" {if in_array("8",$dateOfWeek)}checked=""{/if}> {Yii::t("app", "CHU_NHAT")}
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
{if $type=="edit"}
<input type='checkbox' value='1' name='editAll' checked=""> {Yii::t("app","AP_DUNG_CHO_TAT_CA_DOI_TUONG_DA_CHON")}
{/if}
</div>
<div class="col-md-6 text-right">
{if $type=="edit"}
<button class="btn btn-primary" onclick="editSchedule(this);" data-href="{yii\helpers\Url::to(["/list-management/edit-schedule",'id'=>$model->id])}">
<i class="fa fa-floppy-o"></i> {Yii::t("app","LUU_LAI")}
</button>
{else}
<button class="btn btn-primary" onclick="addSchedule(this);" data-href="{yii\helpers\Url::to(["/list-management/schedule"])}">
<i class="fa fa-floppy-o"></i> {Yii::t("app","LUU_LAI")}
</button>
{/if}
</div>
</div>

View File

@ -49,6 +49,7 @@ $(document).on('focusin', function (e) {
/**
* Các hàm sử dụng chung
*/
$('select').select2();
var common = {};
common.csrf = $('meta[name="csrf-token"]').attr("content");
common.csrfParam = $('meta[name="csrf-param"]').attr("content");
@ -360,7 +361,26 @@ common.changeLanguage = function (e) {
error: function (jqXHR, textStatus, errorThrown) {
}
});
}
};
common.changePerPage = function (e) {
if (window.location.search !== "") {
var perPage = common.getUrlParameter("per-page");
if (perPage) {
var sPageURL = decodeURIComponent(window.location.search.substring(1));
var sURLVariables = sPageURL.split('&');
var newUrl = [];
for (var i = 0; i < sURLVariables.length; i++) {
var temp = sURLVariables[i].split('=');
if (temp[0] !== "per-page")
newUrl.push(sURLVariables[i]);
}
newUrl.push("per-page=" + $(e).val());
window.location = window.location.origin + window.location.pathname + "?" + newUrl.join("&");
} else
window.location = window.location + "&per-page=" + $(e).val();
} else
window.location = window.location + "?per-page=" + $(e).val();
};
/**
* =========================
*/

View File

@ -1,4 +1,5 @@
var x = 0, y = 0;
var multiChoose = false;
$(function () {
common.dateTimePickerByClass("datepicker", "HH:mm DD/MM/YYYY");
common.dateTimePickerDay("birthday");
@ -9,9 +10,13 @@ $(function () {
$("input[name='BatchDelete']").change(function () {
if (this.checked) {
$("#delete-btn-group").removeClass("hidden");
multiChoose = true;
$(".checkbox-column").removeClass("hidden");
} else {
$("tr").removeClass("delete-choose");
$("#delete-btn-group").addClass("hidden");
multiChoose = false;
$(".checkbox-column").addClass("hidden");
}
});
btnImage();
@ -181,10 +186,22 @@ function _deleteFeature(e) {
}
function checkAll(status) {
if (status)
$("tr").addClass("delete-choose");
if (status) {
$("#list-face").find("tr").addClass("delete-choose");
$(".checkbox-column").find("input").prop('checked', true);
} else {
$("#list-face").find("tr").removeClass("delete-choose");
$(".checkbox-column").find("input").prop('checked', false);
}
}
function choose(e) {
if (!multiChoose)
return false;
if ($(e).closest("tr").hasClass("delete-choose"))
$(e).closest("tr").removeClass("delete-choose");
else
$("tr").removeClass("delete-choose");
$(e).closest("tr").addClass("delete-choose");
}
function batchDelete(e) {
@ -671,3 +688,164 @@ function filtersLossImage(e) {
}
}
function scheduleForm(e) {
var check = $(".delete-choose");
if (check.length == 0) {
alert($("input[name='HAY_CHON_DOI_TUONG_DE_GAN_LICH_TRINH']").val());
return;
}
common.modalBlock(true);
$.ajax({
url: $(e).attr("data-href"),
type: 'POST',
success: function (data) {
common.modalBlock(false);
common.modalOpen(data.form, false, data.title);
common.dateTimePickerDay("fromDate");
common.dateTimePickerDay("toDate");
common.dateTimePickerHour("fromTime");
common.dateTimePickerHour("toTime");
},
error: function (jqXHR, textStatus, errorThrown) {
common.modalBlock(false);
common.ajaxError();
}
});
}
function addSchedule(e) {
var lists = [];
$.each($(".delete-choose"), function () {
if ($(this).attr("data-id") !== "")
lists.push($(this).attr("data-id"));
});
if (lists.length == 0) {
alert($("input[name='HAY_CHON_DOI_TUONG_DE_GAN_LICH_TRINH']").val());
return;
}
var dateOfWeek = [];
$.each($("input[name='checkbox-date']:checked"), function () {
dateOfWeek.push($(this).val());
});
common.modalBlock(true);
$.ajax({
url: $(e).attr("data-href"),
type: 'POST',
data: {
fromTime: $("input[name='FromTime']").val(),
toTime: $("input[name='ToTime']").val(),
fromDate: $("input[name='FromDate']").val(),
toDate: $("input[name='ToDate']").val(),
dateOfWeek: dateOfWeek,
lists: lists
},
success: function (data) {
common.modalBlock(false);
window.location.reload(true);
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(errorThrown);
common.modalBlock(false);
common.ajaxError();
}
});
}
function formEditSchedule(e) {
common.modalBlock(true);
$.ajax({
url: $(e).attr("data-href"),
type: 'POST',
success: function (data) {
common.modalBlock(false);
common.modalOpen(data.form, false, data.title);
common.dateTimePickerDay("fromDate");
common.dateTimePickerDay("toDate");
common.dateTimePickerHour("fromTime");
common.dateTimePickerHour("toTime");
},
error: function (jqXHR, textStatus, errorThrown) {
common.modalBlock(false);
common.ajaxError();
}
});
}
function editSchedule(e) {
var lists = [];
$.each($(".delete-choose"), function () {
if ($(this).attr("data-id") !== "")
lists.push($(this).attr("data-id"));
});
var dateOfWeek = [];
$.each($("input[name='checkbox-date']:checked"), function () {
dateOfWeek.push($(this).val());
});
common.modalBlock(true);
$.ajax({
url: $(e).attr("data-href"),
type: 'POST',
data: {
fromTime: $("input[name='FromTime']").val(),
toTime: $("input[name='ToTime']").val(),
fromDate: $("input[name='FromDate']").val(),
toDate: $("input[name='ToDate']").val(),
dateOfWeek: dateOfWeek,
lists: lists,
editAll: $("input[name='editAll']").is(":checked")
},
success: function (data) {
common.modalBlock(false);
window.location.reload(true);
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(errorThrown);
common.modalBlock(false);
common.ajaxError();
}
});
}
function formDeleteSchedule(e) {
common.modalBlock(true);
$.ajax({
url: $(e).attr("data-href"),
type: 'POST',
success: function (data) {
common.modalBlock(false);
common.modalOpen(data.form, false, data.title);
},
error: function (jqXHR, textStatus, errorThrown) {
common.modalBlock(false);
common.ajaxError();
}
});
}
function deleteSchedule(e) {
if (confirm($("input[name='BAN_CO_CHAC_CHAN_MUON_XOA_LICH_TRINH_NAY_KHONG']").val())) {
var lists = [];
$.each($(".delete-choose"), function () {
if ($(this).attr("data-id") !== "")
lists.push($(this).attr("data-id"));
});
common.modalBlock(true);
$.ajax({
url: $(e).attr("data-href"),
type: 'POST',
data: {
editAll: $("input[name='editAll']").is(":checked"),
lists: lists
},
success: function (data) {
common.modalBlock(false);
window.location.reload(true);
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(errorThrown);
common.modalBlock(false);
common.ajaxError();
}
});
}
}