From a5ad6ac28fbbbda759fee166b6cffd692ebbbffb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=90=D0=BD=D1=82=D0=BE=D0=BD=20=D0=A8=D0=B0=D0=BB=D0=B8?=
 =?UTF-8?q?=D0=BC=D0=BE=D0=B2?= <solidovic@gmail.com>
Date: Sat, 30 Aug 2014 20:47:23 +0400
Subject: [PATCH] =?UTF-8?q?=D0=9A=D1=80=D1=83=D1=82=D0=BE=D0=B5=20=D0=B4?=
 =?UTF-8?q?=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81?=
 =?UTF-8?q?=D1=82=D1=83=D0=B4=D0=B5=D0=BD=D1=82=D0=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../classes/Controller/Handler/Map.php        |  2 +-
 .../views/teacher/map/EditStudents.twig       |  2 +-
 ~dev_rating/media/css/construct.css           |  5 ++
 ~dev_rating/media/js/construct/edit.js        | 50 +++++++++++++++----
 4 files changed, 46 insertions(+), 13 deletions(-)

diff --git a/~dev_rating/application/classes/Controller/Handler/Map.php b/~dev_rating/application/classes/Controller/Handler/Map.php
index 91b7b8a03..c08ca0646 100644
--- a/~dev_rating/application/classes/Controller/Handler/Map.php
+++ b/~dev_rating/application/classes/Controller/Handler/Map.php
@@ -415,7 +415,7 @@ class Controller_Handler_Map extends Controller_Handler {
 					$this->post->offsetGet('DisciplineID')
 				); 
 				$SearchResult = array();
-
+		
 				$i = 0;
 				foreach($SeResult as $row){
 					$i++;
diff --git a/~dev_rating/application/views/teacher/map/EditStudents.twig b/~dev_rating/application/views/teacher/map/EditStudents.twig
index b54734b75..ce3803c32 100644
--- a/~dev_rating/application/views/teacher/map/EditStudents.twig
+++ b/~dev_rating/application/views/teacher/map/EditStudents.twig
@@ -19,7 +19,7 @@
 					<span class="info">Курс {{ Student.Grade }}, Группа {{ Student.GroupNum }}</span>
 					<span class="Action">Открыть список ▼</span>
 				</div>
-				<div class="GroupContainer">
+				<div class="GroupContainer GroupID_{{ Student.GroupID }}">
 					{% set NowGroupNum = Student.GroupNum %}
 			{% endif %}
 				<div id="{{ Student.StudentID }}" class="Student {% if Student.Type == 'detach' %}StatusUnbind{% else %}StatusBind{% endif %}">
diff --git a/~dev_rating/media/css/construct.css b/~dev_rating/media/css/construct.css
index 05fa6cf09..7ee942c01 100644
--- a/~dev_rating/media/css/construct.css
+++ b/~dev_rating/media/css/construct.css
@@ -263,6 +263,11 @@
 			font-size: 14px;
 			color: #363636;
 		}
+		.StudentsList .Student .From {
+			float: left;
+			font-size: 14px;
+			color: #363636;
+		}
 		.StudentsList .Student .action {
 			float: right;
 			font-size: 14px;
diff --git a/~dev_rating/media/js/construct/edit.js b/~dev_rating/media/js/construct/edit.js
index 97e6546aa..319092c77 100644
--- a/~dev_rating/media/js/construct/edit.js
+++ b/~dev_rating/media/js/construct/edit.js
@@ -528,12 +528,22 @@ $('.AttachedGroupsList').on('click', '.UnbindGroup', function(){
 });
 
 // Поиск студентов
-function AddStudent(ID, Name, From){
-return '\
-	<div id="'+ ID +'" class="Student StatusUnbind">\
-		<span class="Name">'+ Name +', '+ From +'</span>\
-		<span class="action Action_BindStudent">Прикрепить студента</span>\
-	</div>';
+function AddStudent(ID, Name, From, GroupID, Bind){ 
+	if (Bind == true)
+		var Status = 'StatusBind';
+	else 
+		var Status = 'StatusUnbind';
+	var r = '\
+		<div id="'+ ID +'" class="Student '+ Status +' '+ GroupID +'">\
+			<span class="Name">'+ Name +'</span> \
+			<span class="From">'+ From +'</span>';
+	if (Bind == true)
+		r +='<span class="action Action_UnbindStudent">Отсоединить студента</span>';
+	else
+		r +='<span class="action Action_BindStudent">Прикрепить студента</span>';
+	r +=
+		'</div>';
+	return r;
 }
 
 // Поиск студентов
@@ -556,10 +566,11 @@ function CallSearchStudents() {
 			$('.SearchResult').html('');
 			if (parseInt(SearchResult.Count) > 0)
 				for(var i = 1; i <= parseInt(SearchResult.Count); i++) {
-					var ID = SearchResult[i].StudentID;
-					var Name = SearchResult[i].StudentLast +' '+  SearchResult[i].StudentFirst +' '+ SearchResult[i].StudentSecond;
-					var From = 'Курс ' + SearchResult[i].GroupGrade + ', Группа ' + SearchResult[i].GroupNum;
-					$('.SearchResult').append(AddStudent(ID, Name, From));
+				var ID = SearchResult[i].StudentID;
+				var Name = SearchResult[i].StudentLast +' '+  SearchResult[i].StudentFirst +' '+ SearchResult[i].StudentSecond;
+				var From = 'Курс ' + SearchResult[i].GroupGrade + ', Группа ' + SearchResult[i].GroupNum;
+				var GroupID = 'GroupID_'+SearchResult[i].GroupID
+				$('.SearchResult').append(AddStudent(ID, Name, From, GroupID, false));
 				}
 			else
 				$('.SearchResult').html('<p class="notification">Нет результатов</p>');
@@ -612,6 +623,7 @@ $('.SelectStudyGroup').focusout(function(){
 
 // Прикрепить студента 
 $('.StudentsList').on('click', '.Action_BindStudent', function(){
+	var thisObj = $(this);
 	$(this)
 		.removeClass('Action_BindStudent')
 		.addClass('Action_UnbindStudent')
@@ -629,8 +641,24 @@ $('.StudentsList').on('click', '.Action_BindStudent', function(){
 		},
 		function(data){
 			data = $.parseJSON(data);
-			if(data.success === true)
+			if(data.success === true) {
+				var reg = /GroupID_\d+/;
+				var GroupID = ''+reg.exec(thisObj.parent().attr('class'));
+				var ID = thisObj.parent().attr('id');
+				var Name = thisObj.siblings('.Name').text();
+				var From = thisObj.siblings('.From').text();
+				if ($('div').is('.GroupContainer.'+GroupID) === false) {
+					$('.AttachedStudentsList').append('\
+						<div class="GradeAndGroupTitle ActionShowHideGroupContainer">\
+						<span class="info">'+From+'</span>\
+						<span class="Action">Открыть список ▼</span>\
+					</div>');
+					$('.AttachedStudentsList').append('<div class="GroupContainer '+GroupID+'" style="display: block"> </div>');
+				}
+				$('.GroupContainer.'+GroupID).append(AddStudent(ID, Name, From, GroupID, true));
+				thisObj.parent().remove();
 				EventInspector_ShowMsg('Студент добавлен', 'success');
+			}
 			else EventInspector_ShowMsg('Ошибка при добавление студента', 'error');
 		}
 	);
-- 
GitLab