Merge branch 'dillon/74-admin-workflow' into vapor/development

This commit is contained in:
Dillon Ngo
2025-01-09 15:43:51 +08:00
4 changed files with 53 additions and 30 deletions
@@ -1,22 +0,0 @@
<?php
namespace App\Classes\General\Eloquent\Filters;
use Illuminate\Database\Eloquent\Builder;
class AnswerLike implements Filter
{
/**
* @param Builder $builder
* @param $value
* @return Builder|mixed
*/
public static function apply(Builder $builder, $value)
{
return $builder->where('answer', 'like', '%' . $value . '%')
->orWhereHas('answer', function ($subquery) use($value){
$subquery->where('display_text', 'like', '%' . $value . '%');
});
}
}
@@ -0,0 +1,45 @@
<?php
namespace App\Classes\General\Eloquent\Filters;
use Illuminate\Database\Eloquent\Builder;
class AnswerLikeWithUserId implements Filter
{
/**
* @param Builder $builder
* @param $value
* @return Builder|mixed
*/
public static function apply(Builder $builder, $value)
{
[$searchText, $userId] = $value;
if($userId && $searchText){
return $builder->where(function ($query) use ($searchText) {
$query->where('answer', 'like', '%' . $searchText . '%')
->orWhereHas('answer', function ($subquery) use ($searchText) {
$subquery->where('display_text', 'like', '%' . $searchText . '%');
});
})
->where('user_id', $userId);
}
else if($searchText){
return $builder->where(function ($query) use ($searchText) {
$query->where('answer', 'like', '%' . $searchText . '%')
->orWhereHas('answer', function ($subquery) use ($searchText) {
$subquery->where('display_text', 'like', '%' . $searchText . '%');
});
});
}
else{
return $builder->where('user_id', $userId);
}
// return $builder->where('answer', 'like', '%' . $value . '%')
// ->orWhereHas('answer', function ($subquery) use($value){
// $subquery->where('display_text', 'like', '%' . $value . '%');
// });
}
}
@@ -115,9 +115,9 @@
this.currentKey+=1;
},
updateOptions(){
if(this.filterUserId){
this.options['user_id'] = this.filterUserId;
}
// if(this.filterUserId){
// this.options['user_id'] = this.filterUserId;
// }
if(this.filterQuestionnaireSet){
this.options['has_questionnaire'] = this.filterQuestionnaireSet;
}
@@ -127,8 +127,8 @@
if(this.filterEndDate){
this.options['end_date'] = this.filterEndDate;
}
if(this.filterAnswerText){
this.options['answer_like'] = this.filterAnswerText;
if(this.filterAnswerText || this.filterUserId){
this.options['answer_like_with_user_id'] = [this.filterAnswerText, this.filterUserId];
}
},
exportAction(){
@@ -142,11 +142,11 @@
this.filterStartDate = "",
this.filterEndDate = "",
this.filterAnswerText = "",
delete this.options['user_id'];
// delete this.options['user_id'];
delete this.options['has_questionnaire'];
delete this.options['start_date'];
delete this.options['end_date'];
delete this.options['answer_like'];
delete this.options['answer_like_with_user_id'];
this.currentKey+=1;
},
},
@@ -66,7 +66,7 @@
<div class="col-1">Created Date</div>
</div>
</div>
<loading-component style="height: 200px; top: 0;" key="1" color="success" v-show="questionGroups.length === 0"></loading-component>
<loading-component style="height: 200px; top: 0;" color="success" v-show="questionGroups.length === 0"></loading-component>
<list-component style="min-height: 600px;" :key="currentKey" :section="section + 'ListQuestionGroups'" :endpoint="route('api.questionnaires.qa.list')" :options="options" v-if="questionGroups.length > 0">
<template slot="list" slot-scope="{data}">
<question-answer-component :key="data.id" :data="data"></question-answer-component>