From 2a01caecb9ea8164ab2c7641398f83e2fc7341df Mon Sep 17 00:00:00 2001
From: pimka <pimka@ro.ru>
Date: Wed, 31 Dec 2014 19:23:02 +0300
Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?=
 =?UTF-8?q?=D1=80=D0=B8=D0=BD=D0=B3:=20=D0=B0=D0=BD=D0=B8=D0=BC=D0=B0?=
 =?UTF-8?q?=D1=86=D0=B8=D1=8F=20=D0=B2=20=D0=BA=D0=BE=D0=BD=D1=81=D1=82?=
 =?UTF-8?q?=D1=80=D1=83=D0=BA=D1=82=D0=BE=D1=80=D0=B5=20=D0=B4=D0=B8=D1=81?=
 =?UTF-8?q?=D1=86=D0=B8=D0=BF=D0=BB=D0=B8=D0=BD=D1=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ~dev_rating/media/css/discipline.css          |  5 ++
 .../media/js/discipline/EditStructure.js      | 61 ++++++++++++++++---
 ~dev_rating/media/js/profile.js               |  6 +-
 3 files changed, 62 insertions(+), 10 deletions(-)

diff --git a/~dev_rating/media/css/discipline.css b/~dev_rating/media/css/discipline.css
index 6e900b92c..51764f2e0 100644
--- a/~dev_rating/media/css/discipline.css
+++ b/~dev_rating/media/css/discipline.css
@@ -165,6 +165,7 @@
 }
 .moduleList {
 	padding: 0 4px;
+	position: relative;
 }
 
 .empty { /* Когда нет структуры сообщение */
@@ -174,6 +175,8 @@
 /* Div, в котором модуль и его мероприятия */
 .moduleGroup {
 	padding: 5px 4px 15px 4px;
+	position: relative;
+	/*display: none;*/
 }
 /* Количество баллов (индикатор) */
 .rateIndicatorDIV {
@@ -283,6 +286,7 @@
 	
 	/* Список мероприятий (подмодулей) */
 	.submodules {
+		position: relative;
 	}
 		/* Мероприятие (Подмодуль) */
 		.submodule {
@@ -290,6 +294,7 @@
 			padding: 6px 15px;
 			margin: 5px 8px 8px 8px;
 			box-shadow: 2px 2px 2px #ccc;
+			position: relative;
 		}
 	/* Экзамен */
 	.ExamModule {
diff --git a/~dev_rating/media/js/discipline/EditStructure.js b/~dev_rating/media/js/discipline/EditStructure.js
index d84c7cc7e..c659f68fb 100644
--- a/~dev_rating/media/js/discipline/EditStructure.js
+++ b/~dev_rating/media/js/discipline/EditStructure.js
@@ -40,13 +40,17 @@ var jConfirmPrototype 	= $($.parseHTML(
 
 	// Шаблон мероприятия
 	function ConstructSubmodule(){
-		return jSubmodulePrototype.clone();
+		var temp = jSubmodulePrototype.clone();
+		temp.css('display','none');
+		return temp;
 	}
 
 	// Шаблон модуля
 	function ConstructModule() {
 		var ret = jModulePrototype.clone();
+		ret.css('display','none');
 		ret.children('div.submodules').append(ConstructSubmodule());
+
 		return ret;
 	};
 
@@ -154,6 +158,7 @@ var jConfirmPrototype 	= $($.parseHTML(
 		CountCurrentControl(jSubModulesDiv);
 		CountLandmarkControl(jSubModulesDiv);
 	}
+
 	
 	// Поменять местами два модуля
 	function SwapModuleOrder(jModule1, jModule2) {
@@ -166,7 +171,22 @@ var jConfirmPrototype 	= $($.parseHTML(
 			function(data){
 				data = $.parseJSON(data);
 				if(data.success === true) {
-					jModule1.insertBefore(jModule2);
+
+					var distance = Math.abs(jModule1.offset().top - jModule2.offset().top);
+					var hDiff = Math.abs(jModule1.height() - jModule2.height());
+
+			        $.when(jModule1.animate({
+			           top: -distance
+			        }, 200),
+			        jModule2.animate({
+			            top: distance
+			        }, 200)).done(function () {
+			            jModule1.css('top', '0px');
+			            jModule2.css('top', '0px');
+			            jModule1.insertBefore(jModule2);
+			            animating = false;
+			        });
+
 				}
 				else EventInspector_ShowMsg('Ошибка при изменении порядка модулей', 'error');
 			}
@@ -184,7 +204,23 @@ var jConfirmPrototype 	= $($.parseHTML(
 			function(data){
 				data = $.parseJSON(data);
 				if(data.success === true) {
-					jSubmodule1.insertBefore(jSubmodule2);
+
+					var distance = Math.abs(jSubmodule1.offset().top - jSubmodule2.offset().top);
+					var hDiff = Math.abs(jSubmodule1.height() - jSubmodule2.height());
+
+			        $.when(jSubmodule1.animate({
+			           top: -distance
+			        }, 200),
+			        jSubmodule2.animate({
+			            top: distance
+			        }, 200)).done(function () {
+			            jSubmodule1.css('top', '0px');
+			            jSubmodule2.css('top', '0px');
+			            jSubmodule1.insertBefore(jSubmodule2);
+			            animating = false;
+			        });
+
+					//jSubmodule1.insertBefore(jSubmodule2);
 				}
 				else 
 					EventInspector_ShowMsg('Ошибка при изменении порядка мероприятий', 'error');
@@ -198,6 +234,7 @@ var jConfirmPrototype 	= $($.parseHTML(
     $(".moduleList").on('click', '.upModule', function(){
         var jCkickedModule = $(this).parent().parent().parent();
 		var jModuleGroupDiv = jCkickedModule.prev('div.moduleGroup');
+
 		if (jModuleGroupDiv.length > 0) {
 			SwapModuleOrder(jCkickedModule, jModuleGroupDiv);
 		}
@@ -207,6 +244,7 @@ var jConfirmPrototype 	= $($.parseHTML(
     $(".moduleList").on('click', '.downModule', function(){
         var jCkickedModule = $(this).parent().parent().parent();
 		var jModuleGroupDiv = jCkickedModule.next('div.moduleGroup');
+
 		if (jModuleGroupDiv.length > 0) {
 			SwapModuleOrder(jModuleGroupDiv, jCkickedModule);
 		}
@@ -233,7 +271,7 @@ var jConfirmPrototype 	= $($.parseHTML(
 	// Добавить модуль
 	$('.addModule').click(function(){
 		var jThis = $(this);
-    	$(this).attr("disabled", true);
+    	$(this).attr("disabled", true);                        
 		var orderNum = $('div.moduleGroup', 'div.moduleList').last().index('.moduleGroup') + 2;
 		$.post(
 			g_URLdir + 'handler/map/AddModule',
@@ -242,6 +280,7 @@ var jConfirmPrototype 	= $($.parseHTML(
 			},
 			function(data){
 				data = $.parseJSON(data);
+
 				if(data.success === true) {
 					var place = $('.moduleList').children('.moduleGroup').last();
 					if (place.length > 0) 
@@ -253,6 +292,8 @@ var jConfirmPrototype 	= $($.parseHTML(
 					// К добавленному модулю добавляем ID
 					var thisModuleDIV = $('div.moduleGroup').eq(orderNum - 1);
 					thisModuleDIV.attr('id', data.moduleID);
+					$('#'+data.moduleID).slideDown(200);
+
 					// К добавленному в модуль мероприятию добавляем ID
 					thisModuleDIV.children('div.submodules').children('div.submodule').eq(0).attr('id', data.submoduleID);
 				} else 
@@ -283,6 +324,8 @@ var jConfirmPrototype 	= $($.parseHTML(
 					// К добавленному мероприятию добавляем ID
 					jSubmodulesDIV.append(ConstructSubmodule());
 					jSubmodulesDIV.children('div.submodule').eq(orderNum - 1).attr('id', data.submoduleID);
+					$('#'+data.submoduleID).slideDown(200);
+
 				} else EventInspector_ShowMsg('Ошибка при добавлении мероприятия', 'error');
 				jThis.removeAttr('disabled');
 			}
@@ -301,7 +344,6 @@ var jConfirmPrototype 	= $($.parseHTML(
 	// Подтверждение при удаление модуля
 	$('.moduleList').on('click', '.confirmDeleteModule', function(){
 		var jThis = $(this);
-
 		$.post(
 			g_URLdir + 'handler/map/DeleteModule',
 			{
@@ -310,8 +352,12 @@ var jConfirmPrototype 	= $($.parseHTML(
 			function(data){
 				data = $.parseJSON(data);
 				if(data.success === true) {
-					jThis.parent().parent().parent().remove();
 					
+					jThis.parent().parent().parent().slideUp(200);
+					setTimeout('jThis.parent().parent().parent().remove()', 200);
+					
+
+
 					var c = 0;
 					$('div.moduleGroup')
 						.children('div.moduleHead')
@@ -390,7 +436,8 @@ var jConfirmPrototype 	= $($.parseHTML(
 					old = rateIndicator.html();
 					rateIndicator.html(old - dif1 - dif2);
 					
-					jThis.parent().parent().remove();
+					jThis.parent().parent().slideUp(200);
+					setTimeout('jThis.parent().parent().remove()', 200);
 				}
 				else EventInspector_ShowMsg('Ошибка при удалении мероприятия', 'error');
 			}
diff --git a/~dev_rating/media/js/profile.js b/~dev_rating/media/js/profile.js
index 835fba810..545866268 100644
--- a/~dev_rating/media/js/profile.js
+++ b/~dev_rating/media/js/profile.js
@@ -9,7 +9,7 @@ $(function()
     	if (flag === true) {
 			flag = false;
 		} else if (isOpened === true) {
-    		jProfiler.css('display', 'none');
+    		jProfiler.slideUp(200);//css('display', 'none');
     		isOpened = false;
     	}
     });
@@ -22,12 +22,12 @@ $(function()
     	flag = true;
         if(isOpened)
         {
-            jProfiler.css('display', 'none');
+            jProfiler.slideUp(200);//css('display', 'none');
             isOpened = false;
         }
         else
         {
-            jProfiler.css('display', 'block');
+            jProfiler.slideDown(200);//css('display', 'block');
             isOpened = true;
         }
     });
-- 
GitLab