Chargement ajax à la demande des points de vente favoris des utilisateurs au lieu de tout charger en une seule fois.dev
@@ -291,13 +291,6 @@ class DistributionController extends BackendController | |||
// utilisateurs | |||
$usersArray = User::findBy()->all() ; | |||
foreach($usersArray as &$user) { | |||
$userObject = User::findOne(['id' => $user['user_id']]) ; | |||
$favoritePointSale = $userObject->getFavoritePointSale() ; | |||
if($favoritePointSale) { | |||
$user['id_point_sale_favorite'] = $favoritePointSale->id ; | |||
} | |||
} | |||
$json['users'] = $usersArray ; | |||
@@ -339,6 +332,22 @@ class DistributionController extends BackendController | |||
return $json ; | |||
} | |||
public function actionAjaxPointSaleFavorite($idUser) | |||
{ | |||
\Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; | |||
$user = User::findOne(['id' => $idUser]) ; | |||
$favoritePointSale = $user->getFavoritePointSale() ; | |||
$idFavoritePointSale = 0 ; | |||
if($favoritePointSale) { | |||
$idFavoritePointSale = $favoritePointSale->id ; | |||
} | |||
return [ | |||
'id_favorite_point_sale' => $idFavoritePointSale | |||
] ; | |||
} | |||
/** | |||
* Génére un PDF récapitulatif des des commandes d'un producteur pour une | |||
* date donnée (Méthode appelable via CRON) |
@@ -462,7 +462,7 @@ $this->setPageTitle('Distributions') ; | |||
</label> | |||
<select class="form-control" v-model="order.id_user"> | |||
<option value="0">--</option> | |||
<option v-for="user in users" :value="user.id_user" @click="userChange" :data-id-point-sale-favorite="user.id_point_sale_favorite">{{ user.lastname +' '+ user.name }}</option> | |||
<option v-for="user in users" :value="user.id_user" @click="userChange">{{ user.lastname +' '+ user.name }}</option> | |||
</select> | |||
<input v-model="order.username" type="text" class="form-control" placeholder="Ou saisissez ici le nom de l'utilisateur" /> | |||
</div> |
@@ -514,8 +514,13 @@ Vue.component('order-form',{ | |||
} | |||
}, | |||
userChange: function(event) { | |||
var idPointSaleFavorite = event.currentTarget.getAttribute('data-id-point-sale-favorite') ; | |||
this.order.id_point_sale = idPointSaleFavorite ; | |||
var app = this ; | |||
axios.get(UrlManager.getBaseUrlAbsolute()+"distribution/ajax-point-sale-favorite",{params: { | |||
idUser: app.order.id_user, | |||
}}) | |||
.then(function(response) { | |||
app.order.id_point_sale = response.data.id_favorite_point_sale ; | |||
}) ; | |||
} | |||
} | |||
}) ; |