Browse Source

Merge branch 'ilosada-7528' into 1.10.x

Yannick Warnier 10 years ago
parent
commit
df525a0fde

+ 12 - 39
plugin/buycourses/js/buycourses.js

@@ -73,52 +73,25 @@ $(document).ready(function () {
         e.stopPropagation();
     });
 
-    $('#confirm_session_filter').click(function (e) {
-        var vsession = $("#session_name").attr("value");
-        var sessionpmin = $("#session_price_min").attr("value");
-        var sessionpmax = $("#session_price_max").attr("value");
-        if ($("#mostrar_disponibles").attr("checked") == "checked") {
-            var vshow = "YES";
-        } else {
-            var vshow = "NO";
-        }
-        var vsessioncategory = $("#sessions_category").attr("value");
-        $.post("function.php", {tab: "sessions_filter", session: vsession, pricemin: sessionpmin, pricemax: sessionpmax, mostrar: vshow, category: vsessioncategory},
-            function (data) {
-                if (data.status == "false") {
-                    alert(data.content);
-                    $("#session_results").html('');
-                } else {
-                    $("#session_results").html(data.content);
-                }
-                $(document).ready(acciones_ajax);
-            }, "json");
-
-        e.preventDefault();
-        e.stopPropagation();
-    });
-
-    $('#confirm_filter').click(function (e) {
-        var vcourse = $("#course_name").attr("value");
-        var pmin = $("#price_min").attr("value");
-        var pmax = $("#price_max").attr("value");
-        if ($("#mostrar_disponibles").attr("checked") == "checked") {
-            var vshow = "YES";
-        } else {
-            var vshow = "NO";
-        }
-        var vcategory = $("#courses_category").attr("value");
-        $.post("function.php", {tab: "courses_filter", course: vcourse, pricemin: pmin, pricemax: pmax, mostrar: vshow, category: vcategory},
+    $(".filter").click(function (e) {
+        var target = "#"+($(this).closest(".row").children().last()).attr("id");
+        var filterFields = $(this).siblings("input");
+        var filterFieldsData = { tab: $(this).attr("id") };
+        $.each(filterFields, function() {
+            // Get only the first class
+            var className = $(this).attr("class").split(" ")[0];
+            filterFieldsData[className] = $(this).val();
+        });
+        $.post("function.php", filterFieldsData,
             function (data) {
                 if (data.status == "false") {
                     alert(data.content);
-                    $("#course_results").html('');
+                    $(target).html('');
                 } else {
-                    $("#course_results").html(data.content);
+                    $(target).html(data.content);
                 }
                 $(document).ready(acciones_ajax);
             }, "json");
-
         e.preventDefault();
         e.stopPropagation();
     });

+ 3 - 3
plugin/buycourses/resources/css/style.css

@@ -82,14 +82,14 @@ select#lsessions, select#lcourses, select#lexercises, select#status {
 .margin-left-fifty{
     margin-left: 50px !important;
 }
-#course_category_well h4{
+.category_well h4{
 	padding-left: 0;
 }
-#course_category_well .form-content{
+.category_well .form-content{
 	padding-left: 1em;
 	padding-right: 1em;
 }
-#course_category_well .btn{
+.category_well .btn{
 	width: 100%;
 	line-height: 30px;
 	font-size: 16px;

+ 138 - 149
plugin/buycourses/src/function.php

@@ -46,48 +46,35 @@ if ($_REQUEST['tab'] == 'sync') {
 }
 
 if ($_REQUEST['tab'] == 'sessions_filter') {
-    $session = isset($_REQUEST['session']) ? Database::escape_string($_REQUEST['session']) : '';
-    $priceMin = isset($_REQUEST['pricemin']) ? Database::escape_string($_REQUEST['pricemin']) : '';
-    $priceMax = isset($_REQUEST['pricemax']) ? Database::escape_string($_REQUEST['pricemax']) : '';
-    $category = isset($_REQUEST['category']) ? Database::escape_string($_REQUEST['category']) : '';
+    $session = isset($_REQUEST['name']) ? Database::escape_string($_REQUEST['name']) : '';
+    $priceMin = isset($_REQUEST['pricemin']) ? floatval($_REQUEST['pricemin']) : 0;
+    $priceMax = isset($_REQUEST['pricemax']) ? floatval($_REQUEST['pricemax']) : 0;
+    //$category = isset($_REQUEST['category']) ? Database::escape_string($_REQUEST['category']) : '';
     $server = api_get_path(WEB_PATH);
 
-    $filter = '';
-    if ($session != '') {
-        $filter .= "b.name LIKE '%" . $session . "%'";
-    }
-    if ($priceMin != '') {
-        if ($filter == '') {
-            $filter .= "a.price >= '" . $priceMin . "'";
-        } else {
-            $filter .= " AND a.price >= '" . $priceMin . "'";
-        }
+    $sql = "SELECT a.session_id, a.visible, a.price, b.*
+            FROM $tableBuySession a, $tableSession b
+            WHERE a.session_id = b.id AND a.visible = 1;";
+
+    $filter = "";
+    if (!empty($session)) {
+        $filter .= " AND b.name LIKE '%".$session."%'";
     }
 
-    if ($priceMax != '') {
-        if ($filter == '') {
-            $filter .= "a.price <= '" . $priceMax . "'";
-        } else {
-            $filter .= " AND a.price <= '" . $priceMax . "'";
-        }
+    if ($priceMin > 0) {
+        $filter .= " AND a.price >= ".$priceMin;
     }
 
-    if ($category != '') {
-        if ($filter == '') {
-            $filter .= "b.category_code='" . $category . "'";
-        } else {
-            $filter .= " AND b.category_code='" . $category . "'";
-        }
+    if ($priceMax > 0) {
+        $filter .= " AND a.price <= ".$priceMax;
     }
 
-    if ($filter == '') {
-        $sql = "SELECT a.session_id, a.visible, a.price, b.*
-            FROM $tableBuySession a, $tableSession b
-            WHERE a.session_id = b.id AND a.visible = 1;";
-    } else {
-        $sql = "SELECT a.session_id, a.visible, a.price, b.*
-            FROM $tableBuySession a, $tableSession b
-            WHERE a.session_id = b.id AND a.visible = 1 AND " . $filter . ";";
+    /*if (!empty($category)) {
+        $filter .= " AND b.category_code = '".$category."'";
+    }*/
+
+    if (!empty($filter)) {
+        $sql = substr_replace($sql, $filter.";", -1);
     }
 
     $resSessions = Database::query($sql);
@@ -106,7 +93,7 @@ if ($_REQUEST['tab'] == 'sessions_filter') {
             // get course of current session
             $sql = "SELECT a.course_id, a.session_id, a.visible, a.price, b.*
             FROM $tableBuyCourse a, $tableCourse b
-            WHERE a.code = b.code AND a.code = '" . $rowSessionCourse['course_code'] . "' AND a.visible = 1;";
+            WHERE a.code = b.code AND a.code = '" . $rowSessionCourse['course_code'] . "';";
             $res = Database::query($sql);
             // loop inside a course of current session
             while ($row = Database::fetch_assoc($res)) {
@@ -168,60 +155,65 @@ if ($_REQUEST['tab'] == 'sessions_filter') {
     $currencyType = findCurrency();
     $content = '';
     foreach ($auxSessions as $session) {
-        $content .= '<div class="well_border span8">';
-        $content .= '<div class="row">';
-        $content .= '<div class="span4 ">';
-        $content .= '<div class="categories-course-description">';
-        $content .= '<h3>'.$session['name'].'</h3>';
-        $content .= '<h5>'.get_lang('From').' '.$session['date_start'];
-        $content .= ' '.get_lang('Until').' '.$session['date_end'].'</h5>';
+        $content .= '<div class="span8 well-course">
+            <div class="row">
+                <div class="span4 ">
+                    <div class="categories-course-description">
+                        <h3>'.$session['name'].'</h3>
+                        <h5>'.get_lang('From').' '.$session['date_start'].
+                        ' '.get_lang('Until').' '.$session['date_end'].'</h5>';
         if ($session['enrolled'] == "YES") {
             $content .= '<span class="label label-info">'.$plugin->get_lang('TheUserIsAlreadyRegisteredInTheSession').'</span>';
         }
-        $content .= '</div>';
-        $content .= '</div>';
-        $content .= '<div class="span right">';
-        $content .= '<div class="sprice right">';
-        $content .= $session['price'].' '.$currencyType;
-        $content .= '</div>';
-        $content .= '<div class="cleared"></div>';
-        $content .= '<div class="btn-toolbar right">';
+        if ($session['enrolled'] == "TMP") {
+            $content .= '<span class="label label-warning">'.$plugin->get_lang('WaitingToReceiveThePayment').'</span>';
+        }
+        $content .= '</div>
+                </div>
+            <div class="span right">
+                <div class="sprice right">'.
+                    $session['price'].' '.$currencyType.'
+                </div>
+                <div class="cleared">
+                </div>
+                <div class="btn-group right">';
         if ($session['enrolled'] == "NO") {
-            $content .= '<a class="btn btn-success" title=""';
-            $content .= 'href="'.$server.'plugin/buycourses/src/process.php?scode='.$session['session_id'].'">';
-            $content .= $buy_name;
-            $content .= '</a>';
+            $content .= '<a class="btn btn-success" title="" href="'.$server.
+                        'plugin/buycourses/src/process.php?scode='.$session['session_id'].'">'.
+                            $buy_name.
+                        '</a>';
         }
-        $content .= '</div>';
-        $content .= '</div>';
-        $content .= '</div>';
+        $content .= '</div>
+            </div>
+        </div>';
         $courses = $session['courses'];
         foreach ($courses as $course) {
-            $content .= '<div class="row">';
-            $content .= '<div class="span">';
-            $content .= '<div class="thumbnail">';
-            $content .= '<a class="ajax" rel="gb_page_center[778]" title=""';
-            $content .= 'href="'.$server.'plugin/buycourses/src/ajax.php?';
-            $content .= 'a=show_course_information&code='.$course['code'].'">';
-            $content .= '<img alt="" src="' . $server . $course['course_img'] . '">';
-            $content .= '</a>';
-            $content .= '</div>';
-            $content .= '</div>';
-            $content .= '<div class="span4">';
-            $content .= '<div class="categories-course-description">';
-            $content .= '<h3>' . $course['title'] . '</h3>';
-            $content .= '<h5>' . get_lang('Teacher') . ': ' . $course['teacher'] . '</h5>';
-            $content .= '</div>';
-            $content .= '</div>';
-            $content .= '<div class="span right">';
-            $content .= '<div class="cleared"></div>';
-            $content .= '<div class="btn-toolbar right">';
-            $content .= '<a class="ajax btn btn-primary" title=""';
-            $content .= 'href="'.$server.'plugin/buycourses/src/ajax.php?';
-            $content .= 'a=show_course_information&code='.$course['code'].'">'.get_lang('Description').'</a>';
-            $content .= '</div>';
-            $content .= '</div>';
-            $content .= '</div>';
+            $content .= '<div class="row">
+                <div class="span">
+                    <div class="thumbnail">
+                        <a class="ajax" rel="gb_page_center[778]" title=""
+                        href="'.$server.'plugin/buycourses/src/ajax.php?
+                        a=show_course_information&code='.$course['code'].'">
+                            <img alt="" src="' . $server . $course['course_img'] . '">
+                        </a>
+                    </div>
+                </div>
+                <div class="span4">
+                    <div class="categories-course-description">
+                        <h3>'.$course['title'].'</h3>
+                        <h5>'.get_lang('Teacher').': '.$course['teacher'].'</h5>
+                    </div>
+                </div>
+                <div class="span right">
+                    <div class="cleared">
+                    </div>
+                    <div class="btn-group right">
+                        <a class="ajax btn btn-primary" title=""
+                        href="'.$server.'plugin/buycourses/src/ajax.php?
+                        a=show_course_information&code='.$course['code'].'">'.get_lang('Description').'</a>
+                    </div>
+                </div>
+            </div>';
         }
         $content .= '</div>';
     }
@@ -230,54 +222,40 @@ if ($_REQUEST['tab'] == 'sessions_filter') {
 }
 
 if ($_REQUEST['tab'] == 'courses_filter') {
-    $course = Database::escape_string($_REQUEST['course']);
-    $priceMin = Database::escape_string($_REQUEST['pricemin']);
-    $priceMax = Database::escape_string($_REQUEST['pricemax']);
+    $course = isset($_REQUEST['name']) ? Database::escape_string($_REQUEST['name']) : '';
+    $priceMin = isset($_REQUEST['pricemin']) ? floatval($_REQUEST['pricemin']) : 0;
+    $priceMax = isset($_REQUEST['pricemax']) ? floatval($_REQUEST['pricemax']) : 0;
     /**
      * Deprecated since 2014-10-14
      */
     //$show = Database::escape_string($_REQUEST['show']);
-    $category = Database::escape_string($_REQUEST['category']);
+    //$category = Database::escape_string($_REQUEST['category']);
     $server = api_get_path(WEB_PATH);
 
-    $filter = '';
-    if ($course != '') {
-        $filter .= "b.title LIKE '%" . $course . "%'";
-    }
-    if ($priceMin != '') {
-        if ($filter == '') {
-            $filter .= "a.price >= '" . $priceMin . "'";
-        } else {
-            $filter .= " AND a.price >= '" . $priceMin . "'";
-        }
+    $sql = "SELECT a.course_id, a.visible, a.price, b.*
+            FROM $tableBuyCourse a, $tableCourse b
+            WHERE a.course_id = b.id AND a.session_id = 0
+            AND a.visible = 1;";
+
+    $filter = "";
+    if (!empty($course)) {
+        $filter .= " AND b.title LIKE '%".$course."%'";
     }
 
-    if ($priceMax != '') {
-        if ($filter == '') {
-            $filter .= "a.price <= '" . $priceMax . "'";
-        } else {
-            $filter .= " AND a.price <= '" . $priceMax . "'";
-        }
+    if ($priceMin > 0) {
+        $filter .= " AND a.price >= ".$priceMin;
     }
 
-    if ($category != '') {
-        if ($filter == '') {
-            $filter .= "b.category_code='" . $category . "'";
-        } else {
-            $filter .= " AND b.category_code='" . $category . "'";
-        }
+    if ($priceMax > 0) {
+        $filter .= " AND a.price <= ".$priceMax;
     }
 
-    if ($filter == '') {
-        $sql = "SELECT a.course_id, a.visible, a.price, b.*
-            FROM $tableBuyCourse a, $tableCourse b
-            WHERE a.course_id = b.id AND a.session_id = 0
-            AND a.visible = 1;";
-    } else {
-        $sql = "SELECT a.course_id, a.visible, a.price, b.*
-            FROM $tableBuyCourse a, $tableCourse b
-            WHERE a.course_id = b.id AND a.session_id = 0
-            AND a.visible = 1 AND " . $filter . ";";
+    /*if (!empty($category)) {
+        $filter .= " AND b.category_code = '".$category."'";
+    }*/
+
+    if (!empty($filter)) {
+        $sql = substr_replace($sql, $filter.";", -1);
     }
 
     $res = Database::query($sql);
@@ -288,7 +266,7 @@ if ($_REQUEST['tab'] == 'courses_filter') {
             FROM $tableCourseRelUser a, $tableUser b
             WHERE a.course_code = '" . $row['code'] . "'
             AND a.role <> ''
-            AND a.role <> 'NULL'
+            AND a.role IS NOT NULL
             AND a.user_id = b.user_id;";
 
         $tmp = Database::query($sql);
@@ -330,41 +308,52 @@ if ($_REQUEST['tab'] == 'courses_filter') {
     $currencyType = findCurrency();
     $content = '';
     foreach ($aux as $course) {
-        $content .= '<div class="well_border span8">';
-        $content .= '<div class="row">';
-        $content .= '<div class="span">';
-        $content .= '<div class="thumbnail">';
-        $content .= '<a class="ajax" rel="gb_page_center[778]" title=""';
-        $content .= 'href="'.$server.'plugin/buycourses/src/ajax.php?';
-        $content .= 'a=show_course_information&code='.$course['code'].'">';
-        $content .= '<img alt="" src="'.$server.$course['course_img'].'">';
-        $content .= '</a>';
-        $content .= '</div>';
-        $content .= '</div>';
-        $content .= '<div class="span4">';
-        $content .= '<div class="categories-course-description">';
-        $content .= '<h3>'.$course['title'].'</h3>';
-        $content .= '<h5>'.get_lang('Teacher').': '.$course['teacher'].'</h5>';
-        $content .= '</div>';
+        $content .= '
+            <div class="span8">
+                <div class="row well-course">
+                    <div class="span1 icon-course">
+                        <div class="thumbnail">
+                            <a class="ajax" rel="gb_page_center[778]" title=""
+                            href="'.$server.'plugin/buycourses/src/ajax.php?
+                            a=show_course_information&code='.$course['code'].'">
+                                <img alt="" src="'.$server.$course['course_img'].'">
+                            </a>
+                        </div>
+                    </div>
+                    <div class="span3">
+                        <div class="categories-course-description">
+                            <h3>'.$course['title'].'</h3>
+                            <h5>'.get_lang('Teacher').': '.$course['teacher'].'</h5>
+                        </div>';
         if ($course['enrolled'] == "YES") {
             $content .= '<span class="label label-info">'.$plugin->get_lang('TheUserIsAlreadyRegisteredInTheCourse').'</span>';
         }
-        $content .= '</div>';
-        $content .= '<div class="span right">';
-        $content .= '<div class="sprice right">'.$course['price'].' '.$currencyType.'</div>';
-        $content .= '<div class="cleared"></div>';
-        $content .= '<div class="btn-toolbar right">';
-        $content .= '<a class="ajax btn btn-primary" title=""';
-        $content .= 'href="'.$server.'plugin/buycourses/src/ajax.php?';
-        $content .= 'a=show_course_information&code='.$course['code'].'">'.get_lang('Description').'</a>&nbsp;';
+        if ($course['enrolled'] == "TMP") {
+            $content .= '<span class="label label-warning">'.$plugin->get_lang('WaitingToReceiveThePayment').'</span>';
+        }
+        $content .= '</div>
+                    <div class="span3 right">
+                        <div class="sprice right">'.
+                            $course['price'].' '.$currencyType.'
+                        </div>
+                        <div class="cleared">
+                        </div>
+                        <div class="btn-group right">
+                            <a class="ajax btn btn-primary" title=""
+                            href="'.$server.'plugin/buycourses/src/ajax.php?
+                            a=show_course_information&code='.$course['code'].'">'.
+                                get_lang('Description').
+                            '</a>';
         if ($course['enrolled'] != "YES") {
-            $content .= '<a class="btn btn-success" title=""';
-            $content .= 'href="'.$server.'plugin/buycourses/src/process.php?code='.$course['id'].'">'.$buy_name.'</a>';
+            $content .= '<a class="btn btn-success" title=""
+                            href="'.$server.'plugin/buycourses/src/process.php?code='.$course['id'].'">'.
+                                $buy_name.
+                            '</a>';
         }
-        $content .= '</div>';
-        $content .= '</div>';
-        $content .= '</div>';
-        $content .= '</div>';
+        $content .= '</div>
+                    </div>
+                </div>
+            </div>';
     }
     echo json_encode(array("status" => "true", "content" => $content));
 }

+ 12 - 12
plugin/buycourses/view/list.tpl

@@ -21,15 +21,15 @@ $(function() {
 <div id="tabs-1">
 <div class="row">
     <div class="span3">
-        <div id="course_category_well" class="well">
+        <div class="category_well well">
             <div class="form-content">
                 <h4>{{ 'SearchFilter'|get_plugin_lang('BuyCoursesPlugin') }}:</h4>
                 <label class="control-label">{{ 'CourseName'|get_lang }}:</label>
-                <input type="text" id="course_name" />
+                <input type="text" class="name" />
                 <label class="control-label">{{ 'MinimumPrice'|get_plugin_lang('BuyCoursesPlugin') }}:</label>
-                <input type="text" id="price_min" class="span1"/>
+                <input type="text" class="pricemin span1"/>
                 <label class="control-label">{{ 'MaximumPrice'|get_plugin_lang('BuyCoursesPlugin') }}:</label>
-                <input type="text" id="price_max" class="span1"/>
+                <input type="text" class="pricemax span1"/>
                     {% for category in categories %}
                         <label class="control-label">{{ 'Categories'|get_lang }}:</label>
                         <select id="courses_category">
@@ -38,7 +38,7 @@ $(function() {
                         </select>
                     {% endfor %}
                 <br>
-                 <input type="button" class="btn btn-primary" value="{{ 'Search'|get_lang }}" id="confirm_filter" />
+                 <input type="button" class="filter btn btn-primary" value="{{ 'Search'|get_lang }}" id="courses_filter" />
             </div>
         </div>
     </div>
@@ -95,24 +95,24 @@ $(function() {
 {% if sessionsAreIncluded == "YES" %}
 <div id="tabs-2" class="row">
     <div class="span3">
-        <div id="course_category_well" class="well">
+        <div class="category_well well">
             <div class="form-content">
                 <h4>{{ 'SearchFilter'|get_plugin_lang('BuyCoursesPlugin') }}:</h4>
-                <label class="control-label">{{ 'CourseName'|get_lang }}:</label>
-                <input type="text" id="course_name" />
+                <label class="control-label">{{ 'SessionName'|get_lang }}:</label>
+                <input type="text" class="name" />
                 <label class="control-label">{{ 'MinimumPrice'|get_plugin_lang('BuyCoursesPlugin') }}:</label>
-                <input type="text" id="price_min" class="span1"/>
+                <input type="text" class="pricemin span1"/>
                 <label class="control-label">{{ 'MaximumPrice'|get_plugin_lang('BuyCoursesPlugin') }}:</label>
-                <input type="text" id="price_max" class="span1"/>
+                <input type="text" class="pricemax span1"/>
                     {% for category in categories %}
                         <label class="control-label">{{ 'Categories'|get_lang }}:</label>
-                        <select id="courses_category">
+                        <select id="sessions_category">
                             <option value="" selected="selected"></option>
                                 <option value="{{ category.code }}">{{ category.name }}</option>
                         </select>
                     {% endfor %}
                 <br>
-                 <input type="button" class="btn btn-primary" value="{{ 'Search'|get_lang }}" id="confirm_filter" />
+                 <input type="button" class="filter btn btn-primary" value="{{ 'Search'|get_lang }}" id="sessions_filter" />
             </div>
         </div>
     </div>