Browse Source

Copy reused now using AJAX calls see BT#6515

Julio Montoya 11 years ago
parent
commit
d587b196df

+ 23 - 15
main/exercice/question.class.php

@@ -2316,13 +2316,17 @@ abstract class Question
                         // Copy.
                         $actions .= Display::url(
                             $copyIcon,
-                            $app['url_generator']->generate(
-                                'exercise_copy_question',
-                                array(
-                                    'cidReq' => api_get_course_id(),
-                                    'id_session' => api_get_session_id(),
-                                    'questionId' => $question['iid'],
-                                    'exerciseId' => $exerciseId
+                            'javascript:void(0);',
+                            array(
+                                'onclick' => 'ajaxAction(this);',
+                                'data-url' => $app['url_generator']->generate(
+                                    'exercise_copy_question',
+                                    array(
+                                        'cidReq' => api_get_course_id(),
+                                        'id_session' => api_get_session_id(),
+                                        'questionId' => $question['iid'],
+                                        'exerciseId' => $exerciseId
+                                    )
                                 )
                             )
                         );
@@ -2330,14 +2334,18 @@ abstract class Question
                          // Reuse.
                         $actions .= Display::url(
                             $reuseIcon,
-                            $app['url_generator']->generate(
-                                'exercise_reuse_question',
-                                array(
-                                    'cidReq' => api_get_course_id(),
-                                    'id_session' => api_get_session_id(),
-                                    'questionId' => $question['iid'],
-                                    'exerciseId' => $exerciseId
-                                )
+                            'javascript:void(0);',
+                            array(
+                                'onclick' => 'ajaxAction(this);',
+                                'data-url' => $app['url_generator']->generate(
+                                    'exercise_reuse_question',
+                                    array(
+                                        'cidReq' => api_get_course_id(),
+                                        'id_session' => api_get_session_id(),
+                                        'questionId' => $question['iid'],
+                                        'exerciseId' => $exerciseId
+                                    )
+                                ),
                             )
                         );
                     }

+ 7 - 1
main/locale/trad4all/es.po

@@ -3513,7 +3513,7 @@ msgid "SupportedScormContentMakers"
 msgstr "Paquetes Scorm soportados"
 
 msgid "Copy"
-msgstr "Copiar"
+msgstr "Copia"
 
 msgid "EnableStartTime"
 msgstr "Usar tiempo de publicación"
@@ -4160,3 +4160,9 @@ msgstr "%s sin responder (%s)"
 
 msgid "ToReviewXYZ"
 msgstr "%s por revisar (%s)"
+
+msgid "QuestionReused"
+msgstr "Pregunta agregada a la lista de preguntas"
+
+msgid "QuestionCopied"
+msgstr "Pregunta agregada a la lista de preguntas"

+ 22 - 0
main/template/default/exercise/question_pool.tpl

@@ -114,9 +114,12 @@
         searchDialog.addClass("ui-jqgrid ui-widget ui-widget-content ui-corner-all");
         searchDialog.css({position:"relative", "z-index":"auto", "float":"left"})
         var gbox = $("#gbox_"+grid[0].id);
+
         gbox.before(searchDialog);
         gbox.css({clear:"left"});
 
+        $("#searchmodfbox_questions").after('<div id="result" style="float: left;position: relative; width: 100%;"></div>');
+
         //Select first elements by default
         $('.input-elm').each(function(){
             $(this).find('option:first').attr('selected', 'selected');
@@ -130,10 +133,29 @@
             });
         });
     });
+
+    function ajaxAction(obj) {
+        var url = $(obj).attr('data-url');
+        $.ajax({
+            beforeSend: function(obj) {
+                $("#result").html("<img src=\'{{ _p.web_img }}loadingAnimation.gif\' />");
+            },
+            type: "POST",
+            url: url,
+            success: function(data) {
+                $("#result").html(data);
+            }
+        });
+        event.preventDefault();
+        return false;
+    }
+
+
 </script>
 
 <div class="questions">
     {{ grid }}
 </div>
 
+
 {% endblock %}

+ 12 - 5
src/ChamiloLMS/Controller/ExerciseController.php

@@ -34,7 +34,8 @@ class ExerciseController extends CommonController
         $question = \Question::read($questionId);
 
         if ($question) {
-            $question->updateTitle($question->selectTitle().' - '.get_lang('Copy'));
+            $newQuestionTitle = $question->selectTitle().' - '.get_lang('Copy');
+            $question->updateTitle($newQuestionTitle);
             //Duplicating the source question, in the current course
             $courseInfo = api_get_course_info();
             $newId = $question->duplicate($courseInfo);
@@ -47,14 +48,16 @@ class ExerciseController extends CommonController
             $newAnswer->read();
             //Duplicating the Answers in the current course
             $newAnswer->duplicate($newId);
-            $params = array(
+            /*$params = array(
                 'cidReq' => api_get_course_id(),
                 'id_session' => api_get_session_id(),
                 'id' => $newId,
                 'exerciseId' => $exerciseId
             );
             $url = $app['url_generator']->generate('exercise_question_pool', $params);
-            return $app->redirect($url);
+            return $app->redirect($url);*/
+            $response = \Display::return_message(get_lang('QuestionCopied').": ".$newQuestionTitle);
+            return new Response($response, 200, array());
         }
     }
 
@@ -78,14 +81,18 @@ class ExerciseController extends CommonController
             // adds the question ID represented by $recup into the list of questions for the current exercise
             $objExercise->addToList($exerciseId);
             Session::write('objExercise', $objExercise);
-            $params = array(
+
+            /*$params = array(
                 'cidReq' => api_get_course_id(),
                 'id_session' => api_get_session_id(),
                 'id' => $questionId,
                 'exerciseId' => $exerciseId
             );
             $url = $app['url_generator']->generate('exercise_question_pool', $params);
-            return $app->redirect($url);
+            return $app->redirect($url);*/
+            $response = \Display::return_message(get_lang('QuestionReused').": ".$question->question);
+            return new Response($response, 200, array());
+
         }
     }