composition sorting is now saving automaticly

This commit is contained in:
Bachir Soussi Chiadmi
2018-03-27 00:26:52 +02:00
parent 90c9c68dcd
commit 4e33e4c8af
9 changed files with 120 additions and 43 deletions
@@ -52,6 +52,8 @@ class CompositionController extends ControllerBase {
$status = 'ok';
$message = 'Hello';
$response = new JsonResponse();
switch($action){
case 'create':
$name = $request->query->get('new_name');
@@ -68,6 +70,15 @@ class CompositionController extends ControllerBase {
$this->error_message = t("Composition opening needs a cid as url paramater!");
}
break;
case 'save':
if($cid){
$name = $request->query->get('new_name');
$documents = $request->query->get('documents');
$this->saveComposition($cid, $name, $documents);
}else{
$this->error_message = t("Composition saving needs a cid as query paramater!");
}
break;
case 'delete':
if($cid){
$this->deleteComposition($cid);
@@ -75,9 +86,6 @@ class CompositionController extends ControllerBase {
$this->error_message = t("Composition deletion needs a cid as url paramater!");
}
break;
// case 'rename':
//
// break;
}
if($this->error_message){
@@ -85,8 +93,6 @@ class CompositionController extends ControllerBase {
$message = $this->error_message;
}
// JSON
$response = new JsonResponse();
$data = array(
'action' => $action,
'status' => $status,
@@ -122,16 +128,19 @@ class CompositionController extends ControllerBase {
'compo' => $this->rendered_compo,
);
break;
// case 'delete':
// # code...
// break;
case 'save':
$data += array(
'name'=>$name,
'documents'=>$documents
);
break;
}
}
$response->setData($data);
return $response;
// classic html
// // classic html
// return array(
// '#markup'=>'Status : ' . $status . ' | Message : ' . $message,
// );
@@ -158,6 +167,20 @@ class CompositionController extends ControllerBase {
$this->compo = entity_load('composition', $cid);
}
private function saveComposition($cid, $name = "", $new_documents = array()){
$this->compo = entity_load('composition', $cid);
if($name != ""){
$this->compo->setName($name);
}
$documents = array();
foreach ($new_documents as $nid) {
$documents[] = ['target_id'=>$nid];
}
$this->compo->set('documents', $documents);
$this->compo->save();
}
private function deleteComposition($cid){
$this->compo = entity_load('composition', $cid);
$this->compo->delete();