From 29353d5649bdd6d0b8fca2304f9ff4198df2a949 Mon Sep 17 00:00:00 2001
From: RomanSteinberg <romanofficial@yandex.ru>
Date: Wed, 17 Jun 2015 13:22:44 +0300
Subject: [PATCH] FIX: bugs on page loading

---
 ~dev_rating/media/js/rating.js | 138 ++++++++++++++++-----------------
 1 file changed, 67 insertions(+), 71 deletions(-)

diff --git a/~dev_rating/media/js/rating.js b/~dev_rating/media/js/rating.js
index 017d7bb75..c696b78b6 100644
--- a/~dev_rating/media/js/rating.js
+++ b/~dev_rating/media/js/rating.js
@@ -1,29 +1,57 @@
 var $ = jQuery;
 
-$(function() {
-    // inititializations
+$(function () {
+    // Секция инициализации
     var optionsViewData = {
-         'absence': {
-            sendingOption : 'absence',
-            messageOK : 'Неявка выставлена',
-            messageFail : 'Установка неявки не удалась'
+        'absence': {
+            sendingOption: 'absence',
+            messageOK: 'Неявка выставлена',
+            messageFail: 'Установка неявки не удалась'
         },
-         'absence_unset': {
-            sendingOption : null,
-            messageOK : 'Неявка отменена',
-            messageFail : 'Отмена неявки не удалась'
+        'absence_unset': {
+            sendingOption: null,
+            messageOK: 'Неявка отменена',
+            messageFail: 'Отмена неявки не удалась'
         },
-         'pass': {
-            sendingOption : 'pass',
-            messageOK : 'Автомат выставлен',
-            messageFail : 'Установка автомата не удалась'
+        'pass': {
+            sendingOption: 'pass',
+            messageOK: 'Автомат выставлен',
+            messageFail: 'Установка автомата не удалась'
         },
-         'pass_unset': {
-            sendingOption : null,
-            messageOK : 'Автомат отменен',
-            messageFail : 'Отмена автомата не удалась'
+        'pass_unset': {
+            sendingOption: null,
+            messageOK: 'Автомат отменен',
+            messageFail: 'Отмена автомата не удалась'
         }
     };
+    var json_settings = $.parseJSON($("#hidden_div").html());
+    var cancelFlag = false;
+    var g_col;
+    var g_row;
+    var g_isFocusCell = false; // Стоит фокус на ячейки или нет
+    var g_oldRateCell = null;
+    var g_submoduleID = null;
+    var g_studentID = null;
+    var g_submoduleTitle = "";
+    var g_submoduleMaxRate = 0;
+    var g_stdName = "";
+    var jTdInfo_wrap = $("#tdInfo_wrap");
+    var jTdInfo = jTdInfo_wrap.children('#tdInfo');
+    var g_URL = (window.location.href).split("/");
+    var g_disciplineID = g_URL[g_URL.length - 1];
+
+    // on page loaded
+    // Настройки дисциплины:
+    // + ID - id дисциплины
+    // + studyGroupID_Filter - studyGroupID для фильтра (Эффект памяти)
+
+    controlVisualization();
+    $("div.main_content").ready(AdjustTable);
+    $(window).resize(AdjustTable);
+
+    $("#hidden_div").remove();
+    filterGroups(json_settings.GroupID_Filter);
+    $(".groupSelector [value='" + json_settings.GroupID_Filter + "']").attr("selected", "selected");
 
     function AdjustTable() {
         var jWrap = $('div.main_layer');
@@ -42,7 +70,7 @@ $(function() {
     }
 
     function controlRowVisualization(jRow) {
-        if ($("#pageType").val() === "exam") {
+        if (($("#pageType").val() === "exam") && (json_settings.ExamType === "exam")) {
             var jAutoPassCheckBox = jRow.children(".autoPass").children(".autoPassCheck");
             var jAbsenceCheckBoxes = jRow.children(".absenceCell").children(".absenceCheck");
             var jExtraInputs = jRow.children(".additionalCell").children(".extra");
@@ -56,7 +84,7 @@ $(function() {
 
             // суммарный добор
             var extra = 0;
-            jExtraInputs.each(function() {
+            jExtraInputs.each(function () {
                 extra += $(this).val();
             });
 
@@ -64,10 +92,10 @@ $(function() {
             var row = parseInt(jRow.attr('id').substr(4)); // одинаковая для всех
             var otherDisabled = false;
             var firstInARow = true;
-            jAbsenceCheckBoxes.each(function() {
+            jAbsenceCheckBoxes.each(function () {
                 var id = $(this).parent().attr('id');
                 var col = parseInt(id.substr(8));
-                var neighborExam = $("#col_"+col+"_row_"+row);
+                var neighborExam = $("#col_" + col + "_row_" + row);
 
                 $(this).removeAttr("disabled");
                 if (autopass) // автомат
@@ -100,39 +128,10 @@ $(function() {
         $(".studentsRate").children().children("tr")
             .each(function () {
                 if (($(this).prop("id") != "") && ($(this).attr("id").substr(0, 3) == "row"))
-                        controlRowVisualization($(this));
+                    controlRowVisualization($(this));
             });
     }
 
-    // on page loaded
-    controlVisualization();
-    $("div.main_content").ready(AdjustTable);
-    $(window).resize(AdjustTable);
-
-    var cancelFlag = false;
-    var g_col;
-    var g_row;
-    var g_isFocusCell = false; // Стоит фокус на ячейки или нет
-    var g_oldRateCell = null;
-    var g_submoduleID = null;
-    var g_studentID = null;
-    var g_submoduleTitle = "";
-    var g_submoduleMaxRate = 0;
-    var g_stdName = "";
-    var jTdInfo_wrap = $("#tdInfo_wrap");
-    var jTdInfo = jTdInfo_wrap.children('#tdInfo');
-
-    var g_URL = (window.location.href).split("/");
-    var g_disciplineID = g_URL[g_URL.length - 1];
-
-    // Настройки дисциплины:
-    // + ID - id дисциплины
-    // + studyGroupID_Filter - studyGroupID для фильтра (Эффект памяти)
-    var json_settings = $.parseJSON($("#hidden_div").html());
-    $("#hidden_div").remove();
-    filterGroups(json_settings.GroupID_Filter);
-    $(".groupSelector [value='" + json_settings.GroupID_Filter + "']").attr("selected", "selected");
-
     // Скрываем все остальные группы
     // 0 - показать все
     function filterGroups(groupID) {
@@ -277,7 +276,7 @@ $(function() {
             rateResult += parseInt(jThis.siblings(".semesterRateResultCell").text());
             rateResult += parseInt(jThis.siblings(".bonus").text());
 
-                jThis.siblings(".additionalCell").each(function () {
+            jThis.siblings(".additionalCell").each(function () {
                 if ($(this).children("input").val() !== "")
                     rateResult += parseInt($(this).children("input").val());
             });
@@ -485,8 +484,8 @@ $(function() {
         if (!checked)
             option += '_unset';
         var thisTd = $(this).parent();
-        g_col = thisTd.attr('id').substr(8,1); // absence_C
-        g_row = thisTd.attr('id').substr(10,1); // absence_C_R
+        g_col = thisTd.attr('id').substr(8, 1); // absence_C
+        g_row = thisTd.attr('id').substr(10, 1); // absence_C_R
 
         // call
         TdInfo(thisTd);
@@ -506,8 +505,8 @@ $(function() {
         if (!checked)
             option += '_unset';
         var thisTd = $(this).parent();
-        g_col = thisTd.attr('id').substr(9,1); // autopass_C
-        g_row = thisTd.attr('id').substr(11,1); // autopass_C_R
+        g_col = thisTd.attr('id').substr(9, 1); // autopass_C
+        g_row = thisTd.attr('id').substr(11, 1); // autopass_C_R
 
         // call
         TdInfo(thisTd);
@@ -528,7 +527,7 @@ $(function() {
             type: "POST",
             url: URLdir + "handler/rating/SetExamPeriodOption",
             data: "studentID=" + g_studentID + "&submoduleID=" + g_submoduleID +
-                    "&option=" + optionsViewData[option].sendingOption,
+            "&option=" + optionsViewData[option].sendingOption,
             complete: function (jqXHR, textStatus) {
                 statusCode = jqXHR.status;
                 switch (jqXHR.status) {
@@ -554,20 +553,19 @@ $(function() {
     }
 
     // Фильтр по группе
-    $(".groupSelector").change(function() {
+    $(".groupSelector").change(function () {
         var group = $(this).val();
-        if (group >= 0)
-        {
+        if (group >= 0) {
             filterGroups(group);
             $.post(
                 URLdir + "handler/rating/SelectGroup",
                 {
                     "disciplineID": g_disciplineID,
-                    "groupSelected":  group
+                    "groupSelected": group
                 },
-                function(data){
+                function (data) {
                     data = $.parseJSON(data);
-                    if(data.success === true) {
+                    if (data.success === true) {
 
                     }
                 }
@@ -576,11 +574,10 @@ $(function() {
     });
 
     // Скачать таблицу оценивания в формате excel // depricated
-    $(".downloadExcel").click(function(){
+    $(".downloadExcel").click(function () {
         $.fileDownload(URLdir + 'handler/FileCreator/GenerateExcelRatingTable', {
             httpMethod: "POST",
-            data:
-            {
+            data: {
                 'disciplineID': g_disciplineID
             },
             successCallback: function () {
@@ -593,15 +590,14 @@ $(function() {
     });
 
     // Ведомость в формате excel
-    $('body').on('click', '.downloadExcelStatement', function(){
+    $('body').on('click', '.downloadExcelStatement', function () {
 
         var groupID = parseInt($(this).attr("id").substr(6))
-        var jStageSelector = $("#stageSelector_"+groupID);
+        var jStageSelector = $("#stageSelector_" + groupID);
 
         $.fileDownload(URLdir + 'handler/FileCreator/GenerateFinalForm', {
             httpMethod: "POST",
-            data:
-            {
+            data: {
                 "disciplineID": g_disciplineID,
                 "groupID": groupID,
                 "stage": parseInt(jStageSelector.val())
-- 
GitLab