diff --git a/assets/FaceComparisonAsset.php b/assets/FaceComparisonAsset.php new file mode 100644 index 00000000..e4e6c9e0 --- /dev/null +++ b/assets/FaceComparisonAsset.php @@ -0,0 +1,23 @@ + $value->id, + "object_id" => $value->staff_id, "name" => $this->convert_vi_to_en($value->name), "feature1" => $feature1, "feature2" => $feature2 diff --git a/controllers/ControlLogsController.php b/controllers/ControlLogsController.php index 0ea991be..773c3f55 100644 --- a/controllers/ControlLogsController.php +++ b/controllers/ControlLogsController.php @@ -120,6 +120,7 @@ class ControlLogsController extends Controller { common::updateFeature([ "cmd" => "update", "id" => $listManagement->id, + "object_id" => $listManagement->staff_id, "name" => common::convert_vi_to_en($listManagement->name), "features" => $listManagement->allFeatures ]); diff --git a/controllers/ListManagementController.php b/controllers/ListManagementController.php index 1596b76f..40a595b9 100644 --- a/controllers/ListManagementController.php +++ b/controllers/ListManagementController.php @@ -175,6 +175,7 @@ class ListManagementController extends Controller { common::updateFeature([ "cmd" => "update", "id" => $listManagement->id, + "object_id" => $listManagement->staff_id, "name" => common::convert_vi_to_en($listManagement->name), "features" => $listManagement->allFeatures ]); @@ -282,6 +283,7 @@ class ListManagementController extends Controller { common::updateFeature([ "cmd" => "update", "id" => $model->id, + "object_id" => $model->staff_id, "name" => common::convert_vi_to_en($model->name), "features" => $model->allFeatures ]); @@ -300,6 +302,7 @@ class ListManagementController extends Controller { common::updateFeature([ "cmd" => "delete", "id" => $model->id, + "object_id" => $model->staff_id, "name" => common::convert_vi_to_en($model->name), "features" => [] ]); @@ -326,6 +329,7 @@ class ListManagementController extends Controller { common::updateFeature([ "cmd" => "update", "id" => $model->id, + "object_id" => $model->staff_id, "name" => common::convert_vi_to_en($model->name), "features" => $model->allFeatures ]); @@ -356,6 +360,7 @@ class ListManagementController extends Controller { common::updateFeature([ "cmd" => "delete", "id" => $staff->id, + "object_id" => $staff->staff_id, "name" => common::convert_vi_to_en($staff->name), "features" => [] ]); @@ -565,6 +570,7 @@ class ListManagementController extends Controller { common::updateFeature([ "cmd" => "update", "id" => $model->id, + "object_id" => $model->staff_id, "name" => common::convert_vi_to_en($model->name), "features" => $model->allFeatures ]); @@ -597,6 +603,7 @@ class ListManagementController extends Controller { common::updateFeature([ "cmd" => "create", "id" => $model->id, + "object_id" => $model->staff_id, "name" => common::convert_vi_to_en($model->name), "features" => $model->allFeatures ]); @@ -653,6 +660,7 @@ class ListManagementController extends Controller { common::updateFeature([ "cmd" => "update", "id" => $model->id, + "object_id" => $model->staff_id, "name" => common::convert_vi_to_en($model->name), "features" => $model->allFeatures ]); @@ -673,6 +681,7 @@ class ListManagementController extends Controller { common::updateFeature([ "cmd" => "create", "id" => $model->id, + "object_id" => $model->staff_id, "name" => common::convert_vi_to_en($model->name), "features" => $model->allFeatures ]); @@ -918,4 +927,39 @@ class ListManagementController extends Controller { } } + public function actionFaceComparison() { + if (Yii::$app->request->post()) { + $post = Yii::$app->request->post(); + Yii::$app->response->format = "json"; + $results = json_decode(file_get_contents("http://192.168.1.43:2305/compare", false, stream_context_create([ + 'http' => [ + 'header' => "Content-Type: application/json", + 'method' => "POST", + 'content' => json_encode([ + "type" => "base64", + "img0" => base64_encode(file_get_contents("/var/www/html/BiFace_Server_Lite/web" . $post['face1'])), + "img1" => base64_encode(file_get_contents("/var/www/html/BiFace_Server_Lite/web" . $post['face2'])) + ]) + ] + ])), true); + return [ + "type1" => number_format($results['type1']['percent'] * 100, 2), + "type2" => number_format($results['type2']['percent'] * 100, 2) + ]; + } else { + $this->view->title = Yii::t("app", "SO_SANH_MAT"); + return $this->render('face-comparison', [ + ]); + } + } + + public function actionUploadFace() { + if (Yii::$app->request->post()) { + $post = Yii::$app->request->post(); + $model = new \app\models\UploadForm(); + $url = $model->UploadGlobal("image" . $post['imageIndex'], ["PNG", "JPG", "JPEG", "GIF"], "comparison"); + return $url; + } + } + } diff --git a/messages/en/app.php b/messages/en/app.php index 992f5fb6..11c987f2 100644 --- a/messages/en/app.php +++ b/messages/en/app.php @@ -156,5 +156,6 @@ return [ "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?" + "BAN_CO_CHAC_CHAN_MUON_XOA_LICH_TRINH_NAY_KHONG" => "Are you sure you want to delete this schedule?", + "SO_SANH_MAT" => "Face comparison" ]; diff --git a/messages/ja/app.php b/messages/ja/app.php index 157f04f0..887358ff 100644 --- a/messages/ja/app.php +++ b/messages/ja/app.php @@ -156,5 +156,6 @@ return [ "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" => "このスケジュールを削除してもよろしいですか?" + "BAN_CO_CHAC_CHAN_MUON_XOA_LICH_TRINH_NAY_KHONG" => "このスケジュールを削除してもよろしいですか?", + "SO_SANH_MAT" => "顔比較" ]; diff --git a/messages/vi/app.php b/messages/vi/app.php index 0e6fccf9..4d721d49 100644 --- a/messages/vi/app.php +++ b/messages/vi/app.php @@ -156,5 +156,6 @@ return [ "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?" + "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?", + "SO_SANH_MAT" => "So sánh mặt" ]; diff --git a/views/list-management/face-comparison.tpl b/views/list-management/face-comparison.tpl new file mode 100644 index 00000000..02fa8db0 --- /dev/null +++ b/views/list-management/face-comparison.tpl @@ -0,0 +1,27 @@ +{extends file=$smarty.current_dir|cat:'/../extends.tpl'} +{use class="yii\helpers\Url"} +{use class="app\assets\FaceComparisonAsset"} +{FaceComparisonAsset::register($this)|void} +{block name='content'}
+ + +
+
+ + +
+
+
+ 0.00% +
+
+
+ + +
+
+{/block} \ No newline at end of file diff --git a/views/list-management/index.tpl b/views/list-management/index.tpl index e82df760..74ed8625 100644 --- a/views/list-management/index.tpl +++ b/views/list-management/index.tpl @@ -124,6 +124,9 @@ ])}
+
+ {Yii::t("app", "SO_SANH_MAT")} +

{Yii::t("app", "TIM_KIEM_DU_LIEU")}

{*
diff --git a/web/js/face-comparison.js b/web/js/face-comparison.js new file mode 100644 index 00000000..e897e341 --- /dev/null +++ b/web/js/face-comparison.js @@ -0,0 +1,53 @@ +$(function () { + btnFace("1"); + btnFace("2"); +}); + +function btnFace(imageIndex) { + var fData = { + UploadImage: true, + imageIndex: imageIndex + }; + fData[common.csrfParam] = common.csrf; + new afuButton({ + uploadURI: $("input[name='url_upload_face']").val(), + formData: fData, + wrap: { + tagName: 'div', + classes: '' + }, + fileExtension: '.png,.jpg,.jpeg,.gif', + fileSizeLimit: 1, + classes: 'btn btn-default', + fakeInputContent: ' Chọn hình ảnh', + onUploaded: function (data) { + $("#face" + imageIndex).attr("src", "/data/uploads" + data); + common.uploadBlock(false); + compareFace(); + } + }).addInstance('image' + imageIndex); +} + +function compareFace() { + var face1 = $("#face1").attr("src"); + var face2 = $("#face2").attr("src"); + if (face1 == "/images/user2-160x160.jpg" || face2 == "/images/user2-160x160.jpg") + return; + common.modalBlock(true); + $.ajax({ + url: $("input[name='url_face_comparison']").val(), + type: 'POST', + data: { + face1: face1, + face2: face2 + }, + success: function (data) { + common.modalBlock(false); + $("#percent").html(data.type1 + "%
[" + data.type2 + "%]"); + }, + error: function (jqXHR, textStatus, errorThrown) { + common.modalBlock(false); + common.ajaxError(); + } + }); +} \ No newline at end of file